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
-~----------~----~----~----~------~----~------~--~---