@Test public void testOrphanedWhileManaged() { createData(); Session session = openSession(); session.beginTransaction(); List results = session.createQuery("from EmployeeInfo").list(); assertEquals(1, results.size()); results = session.createQuery("from Employee").list(); assertEquals(1, results.size()); Employee emp = (Employee) results.get(0); assertNotNull(emp.getInfo()); emp.setInfo(null); session.getTransaction().commit(); session.close(); session = openSession(); session.beginTransaction(); emp = (Employee) session.get(Employee.class, emp.getId()); assertNull(emp.getInfo()); results = session.createQuery("from EmployeeInfo").list(); assertEquals(0, results.size()); results = session.createQuery("from Employee").list(); assertEquals(1, results.size()); session.getTransaction().commit(); session.close(); cleanupData(); }
private void createData() { Session session = openSession(); session.beginTransaction(); Employee emp = new Employee(); emp.setInfo(new EmployeeInfo(emp)); session.save(emp); session.getTransaction().commit(); session.close(); }