private static Object getChange(EntityPersister persister, Session session, String entityName, Serializable id, Object entity) { Number version = (Number)persister.getVersion(entity); String uid = getUid(persister, entity); if (uid == null) return null; Object change = null; for (EntityUpdate du : DataContext.get().getDataUpdates()) { if (du.entity instanceof Change) { if (du.type == EntityUpdateType.UPDATE && ((Change)du.entity).getClassName().equals(entityName) && ((Change)du.entity).getId().equals(id)) { change = du.entity; break; } } else if (du.entity.getClass().getName().equals(entityName) && id.equals(persister.getIdentifier(entity, (SessionImplementor)session))) { change = du.entity; break; } } if (change == null) { change = new Change(entityName, id, version, uid); DataContext.addUpdate(EntityUpdateType.UPDATE, change, entity, 1); } else if (change instanceof Change) ((Change)change).updateVersion(version); return change; }