簡體   English   中英

如何使用JPA(休眠)創建與同一實體的關系?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM