I have a JUnit which I'm testing storing and retrieving of objects
into the datastore.  So far I cannot get any of the one to one or one
to many children objects to load.  Am I doing something wrong?  Below
I've listed my simple test with snippets of the objects.


@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class TestObject1
{
        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key key = null;
        @Persistent
        private String name = null;
        @Persistent
        private String version = null;
        @Persistent
        private TestObject2 object2 = null;

        ... accessors
}

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class TestObject2
{
        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Key key = null;
        @Persistent
        private String name = null;
        @Persistent
        private String version = null;

        ... accessors
}

public class TestDOA extends LocalDatastoreTestCase
{
        private static final PersistenceManagerFactory PMF = JDOHelper
        .getPersistenceManagerFactory("transactions-optional");
        public void testBatchInsert()
        {
                TestObject1 object1 = createTestObject1();

                TestObject1 persisted = saveObjectToDataStore(object1);
                assertNotNull(persisted);

                TestObject1 loadedObject1 = getObjectFromDataStore();
                assertNotNull(loadedObject1);

                assertNotNull(loadedObject1.getObject2());      // currently 
fails this
assertion

        }


        private PersistenceManager getPersistenceManager()
        {
                return PMF.getPersistenceManager();
        }

        private TestObject1 saveObjectToDataStore(TestObject1 object1)
        {
                PersistenceManager pm = getPersistenceManager();
                Transaction tx = pm.currentTransaction();
                try
                {
                        tx.begin();

                        TestObject1 persisted = pm.makePersistent(object1);
                        tx.commit();
                        return persisted;
                }
                catch (Throwable e)
                {
                        e.printStackTrace();
                }
                finally{
                        if (tx.isActive())
                        {
                                tx.rollback();
                        }
                        pm.close();
                }
                return null;
        }

        @SuppressWarnings("unchecked")
        public TestObject1 getObjectFromDataStore()
        {
                PersistenceManager pm = getPersistenceManager();
                try
                {
                        Query q = pm.newQuery("select from " + 
TestObject1.class.getName
());
                        List<TestObject1> objects = (List<TestObject1>) 
q.execute();
                        TestObject1 survey =objects.size() > 0 ? 
objects.get(objects.size()
- 1) : null;
                        return survey;
                } finally
                {
                        pm.close();
                }
        }

        private TestObject1 createTestObject1()
        {
                TestObject2 object2 = new TestObject2("Name", "Version");
                TestObject1 object1 = new TestObject1("Name", "Version", 
object2);
                return object1;
        }
}

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to