[英]How to create relationship to the same entity with JPA (Hibernate)?
我有一個實體User
,它應該有property manager
,其中manager是另一個用戶(一個經理可以管理許多用戶,任何一個用戶可能只有一個經理,也可能沒有)。
我該如何實施?
我嘗試了一些標准的東西
@ManyToOne
@JoinColumn (name = ??? /* what should be here? */, nullable = true)
private User manager;
但這並不像看起來那么簡單。
這應該工作:
@OneToOne
@JoinColumn(name="manager")
private User manager;
有什么問題? 使用默認值,即如果您不知道如何命名聯接列,則不要設置name
(應默認為MANAGER_ID之類的名稱)。 從name
屬性的javadoc中:
(可選) 外鍵列的名稱 。 找到它的表取決於上下文。 如果聯接用於OneToOne或Many-ToOne映射,則外鍵列在源實體的表中 。 如果聯接是用於ManyToMany,則外鍵在聯接表中。 默認值(僅在使用單個連接列的情況下適用):以下內容的串聯:引用關系屬性的名稱或引用實體的字段; “_”; 引用的主鍵列的名稱。 如果實體中沒有這樣的引用關系屬性或字段,則連接列名稱形成為以下內容的串聯: “_”; 引用的主鍵列的名稱。
您應該輸入要加入到User
實體的列的名稱。 該名稱可以是您想要的任何名稱,及其在數據庫中的顯示方式。 "manager_id"
或其他。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.