private static PassivatedEntity createUsingHibernate(Object value, Class entityClass, String persistenceContextName, Object persistenceContext) { //TODO: split this out to somewhere to isolate the Hibernate dependency!! Session session = (Session) persistenceContext; if ( isManaged(value, session) ) { Object id = session.getIdentifier(value); Object version = HibernatePersistenceProvider.getVersion(value, session); return create(entityClass, persistenceContextName, id, version); } else { return null; } }
private static PassivatedEntity createUsingEntityManager(Object value, Class entityClass, String persistenceContextName, Object persistenceContext) { EntityManager em = (EntityManager) persistenceContext; if ( isManaged(value, em) ) { Object id = PersistenceProvider.instance().getId(value, em); Object version = PersistenceProvider.instance().getVersion(value, em); return create(entityClass, persistenceContextName, id, version); } else { return null; } }