예제 #1
0
  @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();
  }
예제 #2
0
 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();
 }