Search in sources :

Example 6 with CompoundDoubleTarget

use of org.jpox.samples.compoundidentity.CompoundDoubleTarget in project tests by datanucleus.

the class CompoundIdentityTest method testOneToManyBiFKDouble.

/**
 * Test of compound identity 1-N relations using FK with double compound elements.
 */
public void testOneToManyBiFKDouble() {
    try {
        PersistenceManager pm = pmf.getPersistenceManager();
        Transaction tx = pm.currentTransaction();
        Object id = null;
        CompoundDoubleTarget[] elements = new CompoundDoubleTarget[6];
        try {
            tx.begin();
            CompoundHolder holder1 = new CompoundHolder("First Holder");
            CompoundRelated related1 = new CompoundRelated("First Related");
            elements[0] = new CompoundDoubleTarget(holder1, related1, 1.0);
            elements[1] = new CompoundDoubleTarget(holder1, related1, 2.0);
            elements[2] = new CompoundDoubleTarget(holder1, related1, 3.0);
            elements[3] = new CompoundDoubleTarget(holder1, related1, 4.0);
            elements[4] = new CompoundDoubleTarget(holder1, related1, 5.0);
            elements[5] = new CompoundDoubleTarget(holder1, related1, 6.0);
            holder1.getList3().add(elements[0]);
            holder1.getList3().add(elements[1]);
            holder1.getList3().add(elements[2]);
            holder1.getList3().add(elements[3]);
            holder1.getList3().add(elements[4]);
            holder1.getList3().add(elements[5]);
            pm.makePersistent(holder1);
            tx.commit();
            id = pm.getObjectId(holder1);
            tx.begin();
            CompoundHolder holder2 = (CompoundHolder) pm.getObjectById(id, true);
            assertEquals(6, holder2.getList3().size());
            assertEquals(elements[0], holder2.getList3().get(0));
            assertEquals(elements[1], holder2.getList3().get(1));
            assertEquals(elements[2], holder2.getList3().get(2));
            assertEquals(elements[3], holder2.getList3().get(3));
            assertEquals(elements[4], holder2.getList3().get(4));
            assertEquals(elements[5], holder2.getList3().get(5));
            tx.commit();
        } catch (Exception e) {
            LOG.error(e);
            e.printStackTrace();
            fail(e.getMessage());
        } finally {
            if (tx.isActive()) {
                tx.rollback();
            }
            pm.close();
        }
    } finally {
        clean(CompoundHolder.class);
        clean(CompoundDoubleTarget.class);
        clean(CompoundRelated.class);
    }
}
Also used : Transaction(javax.jdo.Transaction) PersistenceManager(javax.jdo.PersistenceManager) CompoundRelated(org.jpox.samples.compoundidentity.CompoundRelated) CompoundDoubleTarget(org.jpox.samples.compoundidentity.CompoundDoubleTarget) CompoundHolder(org.jpox.samples.compoundidentity.CompoundHolder)

Aggregations

PersistenceManager (javax.jdo.PersistenceManager)6 Transaction (javax.jdo.Transaction)6 CompoundDoubleTarget (org.jpox.samples.compoundidentity.CompoundDoubleTarget)6 CompoundHolder (org.jpox.samples.compoundidentity.CompoundHolder)6 CompoundRelated (org.jpox.samples.compoundidentity.CompoundRelated)6 Iterator (java.util.Iterator)3 Extent (javax.jdo.Extent)2 Collection (java.util.Collection)1 Query (javax.jdo.Query)1 CompoundSingleTarget (org.jpox.samples.compoundidentity.CompoundSingleTarget)1