package org.hibernate.test.bytecode.enhancement.detached; import org.hibernate.cfg.Configuration; import org.hibernate.cfg.Environment; import org.hibernate.test.bytecode.enhancement.AbstractEnhancerTestTask; import org.junit.Assert; import javax.persistence.Entity; import javax.persistence.EntityManager; import javax.persistence.GeneratedValue; import javax.persistence.Id; /** * @author Luis Barreiro */ public class DetachedGetIdentifierTestTask extends AbstractEnhancerTestTask { public Class<?>[] getAnnotatedClasses() { return new Class<?>[]{SimpleEntity.class}; } public void prepare() { Configuration cfg = new Configuration(); cfg.setProperty( Environment.ENABLE_LAZY_LOAD_NO_TRANS, "true" ); cfg.setProperty( Environment.USE_SECOND_LEVEL_CACHE, "false" ); super.prepare( cfg ); } public void execute() { EntityManager em = getFactory().createEntityManager(); em.getTransaction().begin(); SimpleEntity se = new SimpleEntity(); se.name = "test"; se = em.merge( se ); Assert.assertNotNull( getFactory().getPersistenceUnitUtil().getIdentifier( se ) ); em.getTransaction().commit(); em.close(); // Call as detached entity Assert.assertNotNull( getFactory().getPersistenceUnitUtil().getIdentifier( se ) ); } protected void cleanup() { } @Entity(name = "SimpleEntity") public static class SimpleEntity { @Id @GeneratedValue private Long id; private String name; } }