Win a copy of Mesos in Action this week in the Cloud/Virtualizaton forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Hibernate: Updates all the items of a set - Cascade ‘create’ not working

 
Sandeep Jindal
Ranch Hand
Posts: 180
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All,

I am using following data model (changed to make it simpler).

Table: STUDENT, TEACHER, BOOKS_ASSOCIATION, BOOKS_DETAILS.

Student and Teacher have a column whose forign key is BOOKS_ASSC_ID, hbm mapping as following


Books Association Mapping is as following:


and the BOOK_DETAILS table has a coulmn refering to BOOKS_ASSOCIATION table.

The general idea is, the main entity(student,teacher, or anybody else) can have many books. Thus they are having ref to an association key which in turns refer to book details table.

Why there is no direct one to many mapping between main entity (student, teacher, anybody else) is because, books can be issued to any of the main entity. Thus, in order to maintain the forign key reference in BOOK_DETAILS table, this is done.

Now, the problem: Suppose, a Student has issued five books already. Now if I add one more book to the booksDetails set and update the Student object, hibernate runs one insert statement (which is fine), but also runs 6 update statements considering that I have not updated anything in the rest 5 books. I dont want to update the previous items in the association set.

Is there any way to do so? Please also note that I can live with, never updating the BOOK_DETAILS from BOOKS_ASSC or parent entity (STUDENT, TEACHER, etc). I just want two operatonsL: 1) retrieve and 2) add into the bookDetails set.

I tried using cascade="create", but this is not supported. Can anybody please suggest the solution to the problem?
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic