Hi,

    I have a Model something like this...

public class Foo {
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  @PrimaryKey private Key id;

  @Element(dependent = "true")
@Persistent(mappedBy="foo") private Set<Bar> bars = new HashSet<Bar>();
  ...
}

public class Bar {
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  @PrimaryKey private Key id;

  @Persistent private Foo foo;
  ...
}

... on appengine-java. It's all fine and dandy for adding relationships, saving Foo (and Bars get saved)... but when I go to remove Bars, then save, the transaction seems to go through fine, but the no-longer-present Bars aren't deleted from the datastore, whicn means they still exist, with the "Foo" key (visible on manual inspection of the datastore), and then on the next fetch, they magically re-appear in Bar's relationship.

So... is it my responsibility to manually manage deletions of such dependent entities (note, a Bar can't exist outside of a Foo meaningfully), or is it something that JDO's supposed to do for me. And if so, what am I forgetting to set, configuration wise to ensure that JDO deletes it properly.

I fear it may be because I'm detaching these elements then re- persisting them in another web request, and so there's some underlying state management I'm missing...

The important thing is that I need the deletion off the Foo to occur in one or more requests, where the "save" operation occurs in the "last" request (so to speak). So this is conversational state. (in case that matters)

Christian.

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