package cyrille.hibernate; import java.math.BigInteger; import java.util.Date; import junit.framework.TestCase; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; import cyrille.sample.Person; public class HibernateSessionTest extends TestCase { /** * Check the {@link Session#isDirty()} status after rollback. */ public void testSessionDirtyFlagAfterRollback() throws Exception { AnnotationConfiguration configuration = new HsqldbAnnotationConfiguration(); configuration.addAnnotatedClass(Person.class); configuration.configure(); SessionFactory sessionFactory = configuration.buildSessionFactory(); Session session = sessionFactory.openSession(); session.beginTransaction(); Person person = buildPerson(); session.saveOrUpdate(person); session.flush(); assertTrue(session.isDirty()); session.getTransaction().rollback(); assertFalse(session.isDirty()); } private Person buildPerson() { Person person = new Person("Le Clerc", "Cyrille", new Date(), 31, new Integer(31), BigInteger.TEN); return person; } }