public String[] getDirtyPropertyNames(PostUpdateEvent event) { EntityPersister persister = event.getPersister(); final int[] dirtyProperties = event.getDirtyProperties(); if ( dirtyProperties != null && dirtyProperties.length > 0 ) { String[] propertyNames = persister.getPropertyNames(); int length = dirtyProperties.length; String[] dirtyPropertyNames = new String[length]; for ( int i = 0; i < length; i++ ) { dirtyPropertyNames[i] = propertyNames[dirtyProperties[i]]; } return dirtyPropertyNames; } else { return EMPTY_STRING_ARRAY; } }
public String[] getDirtyPropertyNames(PostUpdateEvent event) { EntityPersister persister = event.getPersister(); final int[] dirtyProperties = event.getDirtyProperties(); if ( dirtyProperties != null && dirtyProperties.length > 0 ) { String[] propertyNames = persister.getPropertyNames(); int length = dirtyProperties.length; String[] dirtyPropertyNames = new String[length]; for ( int i = 0; i < length; i++ ) { dirtyPropertyNames[i] = propertyNames[dirtyProperties[i]]; } return dirtyPropertyNames; } else { return null; } }
public void onPostUpdate(PostUpdateEvent event) { if (DataPublishListener.handleExclude(event.getEntity())) return; if (event.getDirtyProperties() != null && event.getDirtyProperties().length > 0) { Object change = getChange(event.getPersister(), event.getSession(), event.getPersister().getEntityName(), event.getId(), event.getEntity()); if (change instanceof Change) { for (int i = 0; i < event.getDirtyProperties().length; i++) { int pidx = event.getDirtyProperties()[i]; String pname = event.getPersister().getPropertyNames()[pidx]; if (AnnotationUtils.isAnnotatedWith(event.getEntity(), pname, ExcludeFromDataPublish.class)) continue; ((Change)change).getChanges().put(pname, event.getState()[pidx]); } } else if (change == null) DataContext.addUpdate(EntityUpdateType.UPDATE, event.getEntity(), event.getEntity()); } }