/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.envers.test.integration.manytomany.inverseToSuperclass; import java.util.ArrayList; import javax.persistence.EntityManager; import org.hibernate.envers.test.BaseEnversJPAFunctionalTestCase; import org.hibernate.envers.test.Priority; import org.junit.Test; /** * @author Hern�n Chanfreau */ public class ManyToManyInverseToSuperclassTest extends BaseEnversJPAFunctionalTestCase { private long m1_id; @Override protected String[] getMappings() { return new String[] {"mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml"}; } @Test @Priority(10) public void initData() { EntityManager em = getEntityManager(); Master m1 = new Master(); DetailSubclass det1 = new DetailSubclass2(); // Revision 1 em.getTransaction().begin(); det1.setStr2( "detail 1" ); m1.setStr( "master" ); m1.setItems( new ArrayList<DetailSubclass>() ); m1.getItems().add( det1 ); det1.setMasters( new ArrayList<Master>() ); det1.getMasters().add( m1 ); em.persist( m1 ); em.getTransaction().commit(); m1_id = m1.getId(); // Revision 2 // em.getTransaction().begin(); // // m1 = em.find(Master.class, m1_id); // // det2.setStr2("detail 2"); // det2.setParent(m1); // m1.getItems().add(det2); // em.getTransaction().commit(); // // // Revision 3 // em.getTransaction().begin(); // // m1 = em.find(Master.class, m1_id); // m1.setStr("new master"); // // det1 = m1.getItems().get(0); // det1.setStr2("new detail"); // DetailSubclass det3 = new DetailSubclass2(); // det3.setStr2("detail 3"); // det3.setParent(m1); // // m1.getItems().get(1).setParent(null); // // m1.getItems().remove(1); // m1.getItems().add(det3); // // em.persist(m1); // em.getTransaction().commit(); // // // Revision 4 // em.getTransaction().begin(); // // m1 = em.find(Master.class, m1_id); // // det1 = m1.getItems().get(0); // det1.setParent(null); // // m1.getItems().remove(det1); // // em.persist(m1); // em.getTransaction().commit(); } @Test public void testHistoryExists() { Master rev1_1 = getAuditReader().find( Master.class, m1_id, 1 ); Master rev1_2 = getAuditReader().find( Master.class, m1_id, 2 ); Master rev1_3 = getAuditReader().find( Master.class, m1_id, 3 ); Master rev1_4 = getAuditReader().find( Master.class, m1_id, 4 ); assert (rev1_1 != null); assert (rev1_2 != null); assert (rev1_3 != null); assert (rev1_4 != null); } }