File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Problems with transitive/cascading persistence

 
Julien Martin
Ranch Hand
Posts: 384
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello,

I have an entity Poll that can contain multiple entities PossibleAnswer. They are mapped by two tables, one with a pk (Poll) the other with a pk and a fk (PossibleAnswer). It is a bidirectional relationship.


Here is the relevant snippet from PossibleAnswer:

[code] @ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="idPoll")
private Poll poll;[code]

Here is the relevant snippet from Poll

[code]@OneToMany(mappedBy="poll")
private Collection<PossibleAnswer> possibleAnswers = new ArrayList<PossibleAnswer>();[code]

I then set the Poll on each possible answer
[code]possibleAnswer1.setPoll(poll)[code]

I then add the possible Answers to the collection.
[code]possibleAnswers.add(possibleAnswer1)[code]

I then set the collection to the Poll as follows:
[code]poll.setPossibleAnswers(possibleAnswers)[code]

and finally I persist the poll.

Only the poll entity gets persisted and therefore the transitive persistence does not work.

I use hibernate as jpa provider.

Can anyone please help?

Julien.
[ November 19, 2007: Message edited by: Julien Martin ]
 
Mark Spritzler
ranger
Sheriff
Posts: 17276
6
IntelliJ IDE Mac Spring
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes you only set the cascade option for one of the directions, not the other. So set the OneToMany mapping to have a cascade option to save it.

Mark
 
Julien Martin
Ranch Hand
Posts: 384
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thanks Mark!
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic