I did further investigation on my unittest (code is pasted in my previous email). The second transaction block is not persisting the SecurityGroup Entity. If I add the following line with in txn block, securityGroup = pm.getObjectById(SecurityGroup.class, securityGroup.getId());
I see the following in testresults file Testcase: testSecurityGroupNotBelongToTenant took 0.239 sec Caused an ERROR The key value passed to construct a SingleFieldIdentity of type "class javax.jdo.identity.StringIdentity" for class "class com.veersoft.security.SecurityGroup" is null. -Aswath On Wed, Feb 3, 2010 at 12:11 PM, aswath satrasala < aswath.satras...@gmail.com> wrote: > Hello > Anything wrong here. > I have two classes Tenant and SecurityGroup. > * Create Tenant > * Create SecurityGroup > * Add SecurityGroup to Tenant > * Persist. > > * Create another SecurityGroup entity. > * Persist > > When I query the datastore for SecurityGroup entities, I get back one > entity instead of two. > > Any ideas? > > Following is the code for the two classes. > @PersistenceCapable(identityType = IdentityType.APPLICATION) > public class Tenant { > @PrimaryKey > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > @Extension(vendorName = "datanucleus", key="gae.encoded-pk", > value="true") > private String id; > > @Persistent > @Extension(vendorName = "datanucleus", key="gae.pk-name", value="true") > private String name; > > @Persistent > private List<SecurityGroup> secGrpList = new > ArrayList<SecurityGroup>(); > } > > @PersistenceCapable(identityType = IdentityType.APPLICATION) > public class SecurityGroup { > > @PrimaryKey > @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > @Extension(vendorName = "datanucleus", key = "gae.encoded-pk", value = > "true") > private String id; > > @Persistent > @Extension(vendorName = "datanucleus", key = "gae.pk-name", value = > "true") > private String name; > } > > Thanks > > > > On Thu, Jan 28, 2010 at 5:14 PM, aswath satrasala < > aswath.satras...@gmail.com> wrote: > >> I have the following unittest code. I am persisting two SecurityGroup >> entities, one as a child of Tenant and one entity not having any parent. >> >> beginTxn(); >> Tenant tenant = new Tenant(); >> SecurityGroup securityGroup = new SecurityGroup(); >> securityGroup.setName("PARTYMGRADMIN"); >> tenant.getSecGrpList().add(securityGroup); >> pm.makePersistent(tenant); >> commitTxn(); >> >> beginTxn(); >> securityGroup = new SecurityGroup(); >> securityGroup.setName("PARTYMGRADMIN1"); >> pm.makePersistent(securityGroup); >> commitTxn(); >> >> beginTxn(); >> Query q = pm.newQuery(SecurityGroup.class); >> List<SecurityGroup> results = (List<SecurityGroup>) q.execute(); >> assertEquals(2, results.size()); >> commitTxn(); >> >> I get results.size() as one. I am expecting the results.size() as two >> >> -Aswath >> > > -- 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 google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.