2017-02-20 79 views
1

我是Hibernate的新手,我正在嘗試學習映射策略。現在我能夠實現單向和雙向映射。我發現在uni-directional映射的情況下,嚴格需要@JoinColumn,但在bi-directional映射的情況下不會。休眠:@JoinColumn在單向和雙向映射中的行爲

爲什麼@JoinColumn@JoinTable需要在uni-directional映射的情況下,但在bi-directional映射的情況下,可選擇?

回答

0

我不會說在雙向映射的情況下它是可選的。 它只是在擁有方面指定,這意味着在擁有方指定它是可選的和多餘的。這也是不可取的,因爲當連接列名會發生變化時,您將不得不對兩個類進行更改。

我做了一些測試,Hiberante會允許它......但是又是爲什麼呢。

作爲單向映射僅配置了持有端和你不希望能夠從關係的另一側接合這些實體,然後通過暗示:

@JoinColumn(適合於單向@ManyToOne)

@JoinTable(適合於單向@OneToMany)

必須被使用。

試着通過這篇文章:examples