B list is missing from class A in my previous posting. Here is the complete
A class...
@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;
@Persistent
private List<B> bList ;
}
On Fri, Feb 5, 2010 at 4:32 PM, aswath satrasala <[email protected]
> wrote:
> 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.