Package org.apache.ojb.odmg

Examples of org.apache.ojb.odmg.TransactionExt


        Implementation odmg = OJB.getInstance();
        Database db = odmg.newDatabase();
        db.open(TestHelper.DEF_DATABASE_NAME, Database.OPEN_READ_WRITE);

        TransactionExt tx = (TransactionExt) odmg.newTransaction();
        tx.begin();
        db.makePersistent(s_ref_4);
        db.makePersistent(obj_2);
        tx.commit();

        tx.begin();

        // try to find object
        Criteria crit = new Criteria();
        crit.addEqualTo("name", name);
        QueryByCriteria query = QueryFactory.newQuery(MainObject.class, crit);

        int result = tx.getBroker().getCount(query);
        assertEquals("Wrong object count", 1, result);
        // pk have to set and have to be different
        assertNotNull(obj_2.getIdentifier());
        assertTrue(obj_2.getIdentifier().longValue() > 0);
        // no collection reference set
        List references = obj_2.getAllReferences();
        assertTrue(references == null || references.size() == 0);
        // get Identity objects
        Identity oid_2 = tx.getBroker().serviceIdentity().buildIdentity(obj_2);
        // get identifier (PK) values
        Long id_2 = obj_2.getIdentifier();

        tx.getBroker().clearCache();
        obj_2 = (MainObject) tx.getBroker().getObjectByIdentity(oid_2);

        assertTrue(obj_2.getIdentifier().longValue() > 0);
        assertNotNull(obj_2.getSingleReference());
        assertTrue(obj_2.getSingleReference().getId().longValue() > 0);
        // no collection reference set
        references = obj_2.getAllReferences();
        assertTrue(references == null || references.size() == 0);

        tx.getBroker().clearCache();
        // get references only
        Criteria crit_2 = new Criteria();
        crit_2.addEqualTo("refName", nameRef);
        QueryByCriteria query_2 = QueryFactory.newQuery(CollectionReference.class, crit_2);
        int result_2 = tx.getBroker().getCount(query_2);

        assertEquals(0, result_2);

        tx.getBroker().clearCache();
        // get object
        MainObject retObj = (MainObject) tx.getBroker().getObjectByIdentity(oid_2);

        List refList = retObj.getAllReferences();
        assertNotNull(refList);
        assertEquals("object do not have references", 0, refList.size());
        tx.commit();

        // add new reference to object
        CollectionReference ref_6 = new CollectionReference(null, "###_new_" + nameRef);
        tx.begin();
        tx.lock(obj_2, Transaction.WRITE);
        obj_2.addReference(ref_6);
        tx.commit();

        references = obj_2.getAllReferences();
        assertNotNull(references);
        assertEquals("1 references expected for object: "+obj_2, 1, references.size());


        assertNotNull(ref_6.getRefIdentifier());
        // check FK setting
        Long fk = ref_6.getFkIdentifier();
        assertNotNull(fk);
        assertEquals(obj_2.getIdentifier(), fk);
        assertEquals(id_2, obj_2.getIdentifier());
        references = obj_2.getAllReferences();
        assertNotNull(references);
        assertEquals("1 references expected for object: "+obj_2, 1, references.size());
        assertNotNull(references);

        tx.begin();
        obj_2 = (MainObject) tx.getBroker().getObjectByIdentity(oid_2);
        // we don't change the main object, only add an reference, so the
        // cached version of the object isn't up to date
        tx.getBroker().retrieveAllReferences(obj_2);
        tx.commit();

        assertNotNull(obj_2);
        references = obj_2.getAllReferences();
        assertNotNull(references);
        assertEquals("Reference expected for object", 1, references.size());

        assertEquals(id_2, obj_2.getIdentifier());

        // now update main objects
        tx.begin();
        tx.lock(obj_2, Transaction.WRITE);
        obj_2.setName(name+"_update");
        tx.commit();

        broker = PersistenceBrokerFactory.defaultPersistenceBroker();
        obj_2 = (MainObject) broker.getObjectByIdentity(oid_2);
        broker.close();

        assertNotNull(obj_2);
        assertEquals(obj_2.getName(), name+"_update");
        assertEquals(id_2, obj_2.getIdentifier());

        broker = PersistenceBrokerFactory.defaultPersistenceBroker();
        obj_2 = (MainObject) broker.getObjectByIdentity(oid_2);
        broker.close();

        // now update reference
        assertNotNull(obj_2);
        tx.begin();
        tx.lock(obj_2, Transaction.WRITE);
        references = obj_2.getAllReferences();
        CollectionReference ref = (CollectionReference) references.get(0);
        tx.lock(ref, Transaction.WRITE);
        ref.setRefName(nameRef+"_update");
        tx.commit();

        broker = PersistenceBrokerFactory.defaultPersistenceBroker();
        obj_2 = (MainObject) broker.getObjectByIdentity(oid_2);
        assertNotNull(obj_2);
        references = obj_2.getAllReferences();
View Full Code Here


        {
            return keyRealSubject;
        }
        else
        {
            TransactionExt tx = getTransaction();

            if((tx != null) && tx.isOpen())
            {
                prepareKeyRealSubject(tx.getBroker());
            }
            else
            {
                if(getPBKey() != null)
                {
View Full Code Here

        {
            return valueRealSubject;
        }
        else
        {
            TransactionExt tx = getTransaction();

            if((tx != null) && tx.isOpen())
            {
                prepareValueRealSubject(tx.getBroker());
            }
            else
            {
                if(getPBKey() != null)
                {
View Full Code Here

    public PBKey getPBKey()
    {
        if(pbKey == null)
        {
            TransactionExt tx = getTransaction();
            if(tx != null && tx.isOpen())
            {
                pbKey = tx.getBroker().getPBKey();
            }
        }
        return pbKey;
    }
View Full Code Here

TOP

Related Classes of org.apache.ojb.odmg.TransactionExt

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.