I have a class A{Set b .....} which holds references of class B as Set. It is one to many relationship. Both class have sequencer in oracle. I put cascade to all in hibernate annotations. When i save class A, it gives me error that cannot insert null B.a_id . A-id is not nullable in my database. How can i persist this relatioship.
+2
A:
This is a unidirectional relationship from A->B. a_id column in table B is not nullable. When hibernate tries to save class B, it not able to find value for a_id.
Well, did you try to make the JoinColumn
non nullable
?
@OneToMany
@Cascade({CascadeType.ALL})
@JoinColumn(name="A_ID", nullable=false)
private Set<B> b;
See also
- Hibernate Core Reference Guide
Pascal Thivent
2010-09-16 09:05:44
Thanks a lot, It is working now. It is foolish to not see all attributes.
dmay
2010-09-16 09:38:45
Now it is successfully working. I can one insert statement into A and one for B ,then update statement for table B. Since insert statement doesn't throw exception i wonder if hibernate insert temporary values into a_Id.
dmay
2010-09-23 15:34:17
If i change the mapping from OnetoMany to OnetoOne, then it again give cannot insert null sql exception. How can i then persist OnetoOne mapping.
dmay
2010-09-24 07:24:22