This is a similar posting I had posted earlier "incorrect number of entities
returned". Hopefully, this posting may be more clean and I will get some
replies.
I have two classes
1) A
2) B
A is in 1 to many relationship with B
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class A {
@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;
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class B {
@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;
}
public class BTest extends JDOTestCase {
public void testB() throws Exception {
A a = new A();
a.setName("a");
B b = new B();
b.setName("b");
a.getBList().add(b);
beginTxn();
pm.makePersistent(a);
a = pm.getObjectById(A.class, a.getId());
assertEquals(1, a.getBList().size());
commitTxn();
B b1 = new B();
b1.setName("b1");
beginTxn();
pm.makePersistent(b1);
b1 = pm.getObjectById(B.class, b1.getId());
b1.getId();
commitTxn();
}
}
The test fails at the last line "b1.getId()"
If any of B entity is in relation with A earlier, then another entity of B
cannot be persisted by itself.
If I move the 2nd transaction to the beginning, the test passes.
-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 [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.