List of usage examples for org.hibernate.event.spi PostUpdateEvent getDirtyProperties
public int[] getDirtyProperties()
From source file:org.granite.tide.hibernate4.HibernateDataChangePublishListener.java
License:Open Source License
public void onPostUpdate(PostUpdateEvent event) { if (DataPublishListener.handleExclude(event.getEntity())) return;// w ww. ja v a 2 s . c o m 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()); } }