List of usage examples for org.hibernate.persister.entity EntityPersister getVersionType
VersionType getVersionType();
From source file:com.utest.dao.UtestDeleteEventListener.java
License:Apache License
@SuppressWarnings("unchecked") @Override/* w ww . j a v a2s .c o m*/ /** * Handle the given delete event. This is the cascaded form. * * @param event The delete event. * @param transientEntities The cache of entities already deleted * * @throws HibernateException */ public void onDelete(DeleteEvent event, Set transientEntities) throws HibernateException { final EventSource source = event.getSession(); final PersistenceContext persistenceContext = source.getPersistenceContext(); Object entity = persistenceContext.unproxyAndReassociate(event.getObject()); EntityEntry entityEntry = persistenceContext.getEntry(entity); final EntityPersister persister = source.getEntityPersister(event.getEntityName(), entity); final Object version; if (persister.isVersioned()) { version = persister.getVersion(entity, source.getEntityMode()); // Make sure version has not changed on deleted entities if ((entity instanceof TimelineEntity) && !((TimelineEntity) entity).isNew()) { if (!persister.getVersionType().isEqual(version, entityEntry.getVersion())) { throw new StaleObjectStateException(persister.getEntityName(), entityEntry.getId()); } } } super.onDelete(event, transientEntities); }
From source file:com.utest.dao.UtestFlushEntityEventListener.java
License:Apache License
@Override public void onFlushEntity(final FlushEntityEvent event) throws HibernateException { final Object object = event.getEntity(); final EntityEntry entry = event.getEntityEntry(); final EntityPersister persister = entry.getPersister(); // final Status status = entry.getStatus(); final SessionImplementor session = event.getSession(); if (persister.isVersioned()) { final Object version = persister.getVersion(object, session.getEntityMode()); // Make sure version has not changed on updated entities if ((object instanceof TimelineEntity) && !((TimelineEntity) object).isNew()) { if (!persister.getVersionType().isEqual(version, entry.getVersion())) { throw new StaleObjectStateException(persister.getEntityName(), entry.getId()); }//from www . j av a 2 s . co m } } super.onFlushEntity(event); }