Search in sources :

Example 1 with EmbeddedObject

use of org.jpox.samples.embedded.EmbeddedObject in project tests by datanucleus.

the class EmbeddedPCTest method testEmbeddedOwnerWithInheritanceAndByteArray.

public void testEmbeddedOwnerWithInheritanceAndByteArray() {
    if (!storeMgr.getSupportedOptions().contains(StoreManager.OPTION_ORM_EMBEDDED_PC)) {
        return;
    }
    try {
        PersistenceManager pm = pmf.getPersistenceManager();
        Transaction tx = pm.currentTransaction();
        try {
            tx.begin();
            EmbeddedOwner1 owner = new EmbeddedOwner1(1, "First owner");
            owner.setBytesValue(new byte[] { 1, 2, 3 });
            EmbeddedObject emb = new EmbeddedObject("First embedded", new byte[] { 3, 5, 7, 9 });
            owner.setEmbeddedObject(emb);
            pm.makePersistent(owner);
            tx.commit();
        } catch (Exception e) {
            LOG.error("Exception in test", e);
            fail("Exception thrown while persisting objects with embedded field(s) : " + e.getMessage());
        } finally {
            if (tx.isActive()) {
                tx.rollback();
            }
            pm.close();
        }
        pmf.getDataStoreCache().evictAll();
        // Retrieve the object and validate it
        pm = pmf.getPersistenceManager();
        tx = pm.currentTransaction();
        try {
            tx.begin();
            EmbeddedOwner1 owner = (EmbeddedOwner1) pm.getObjectById(EmbeddedOwner1.class, 1);
            assertNotNull(owner);
            assertEquals("First owner", owner.getName());
            EmbeddedObject emb = owner.getEmbeddedObject();
            assertNotNull(emb);
            assertEquals("First embedded", emb.getName());
            tx.commit();
        } catch (Exception e) {
            LOG.error("Exception in test", e);
            fail("Exception thrown while retrieving objects with embedded field(s) : " + e.getMessage());
        } finally {
            if (tx.isActive()) {
                tx.rollback();
            }
            pm.close();
        }
    } finally {
        // Clean out created data
        clean(EmbeddedOwner1.class);
    }
}
Also used : Transaction(javax.jdo.Transaction) PersistenceManager(javax.jdo.PersistenceManager) EmbeddedOwner1(org.jpox.samples.embedded.EmbeddedOwner1) EmbeddedObject(org.jpox.samples.embedded.EmbeddedObject)

Aggregations

PersistenceManager (javax.jdo.PersistenceManager)1 Transaction (javax.jdo.Transaction)1 EmbeddedObject (org.jpox.samples.embedded.EmbeddedObject)1 EmbeddedOwner1 (org.jpox.samples.embedded.EmbeddedOwner1)1