// Set relationship
Object emp4Oid = getOidByName("emp4");
Employee emp4 = (Employee)pm.getObjectById(emp4Oid);
Object dept2Oid = getOidByName("dept2");
Department dept2 = (Department)pm.getObjectById(dept2Oid);
dept1.addEmployee(emp4);
pm.flush();
// Postcondition
deferredAssertTrue(emp4.getDepartment() == dept1,
ASSERTION_FAILED + testMethod,
"Postcondition is false; "
+ "other side of relationship not set on flush");
deferredAssertTrue(!dept2.getEmployees().contains(emp4),
ASSERTION_FAILED + testMethod,
"Postcondition is false; "
+ "previous relationship not unset on flush");
pm.currentTransaction().commit();
cleanupPM();
getPM();
pm.currentTransaction().begin();
emp4 = (Employee)pm.getObjectById(emp4Oid);
dept1 = (Department)pm.getObjectById(dept1Oid);
dept2 = (Department)pm.getObjectById(dept2Oid);
deferredAssertTrue(emp4.getDepartment() == dept1,
ASSERTION_FAILED + testMethod,
"In new transaction, postcondition is false; " +
"other side of relationship is not set.");
deferredAssertTrue(!dept2.getEmployees().contains(emp4),
ASSERTION_FAILED + testMethod,
"Postcondition is false; "
+ "previous relationship not unset on flush");
pm.currentTransaction().commit();