cannot insert null in one to many relationship hibernate annotation

前端 未结 2 798
渐次进展
渐次进展 2021-01-01 03:31

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 hibernat

相关标签:
2条回答
  • 2021-01-01 04:18

    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
      • 6.2.1. Collection foreign keys
    0 讨论(0)
  • 2021-01-01 04:26

    I ran into the same problem and solved it by using the mappedBy attribute of the @OneToMany annotation in Class A:

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "m_a")
    private Set<B> b;
    

    Here, m_a is the field in Class B that refers to Class A:

    @JoinColumn(name = "aId", nullable = false)
    @ManyToOne
    private A m_a;
    

    This way, the @JoinColumn is only specified in one place, no duplicated code.

    0 讨论(0)
提交回复
热议问题