另一種休眠的問題休眠許多-to-many關聯...:P與同一實體
使用Hibernate的註解框架,我有一個User
實體。每個User
可以有一個朋友的集合:其他User
s的集合。但是,我無法弄清楚如何在由User
s(使用用戶朋友中間表)組成的User
類中創建多對多關聯。
這裏的用戶類及其註釋:
@Entity
@Table(name="tbl_users")
public class User {
@Id
@GeneratedValue
@Column(name="uid")
private Integer uid;
...
@ManyToMany(
cascade={CascadeType.PERSIST, CascadeType.MERGE},
targetEntity=org.beans.User.class
)
@JoinTable(
name="tbl_friends",
[email protected](name="personId"),
[email protected](name="friendId")
)
private List<User> friends;
}
的用戶朋友的映射表只有兩列,這兩者都是外鍵的tbl_users
表的uid
列。這兩列是personId
(應映射到當前用戶)和friendId
(它指定當前用戶的朋友的ID)。
問題是,即使我已經預先填充好友表,使得系統中的所有用戶都與其他所有用戶成爲好友,但「好友」字段仍然顯示爲空。我甚至嘗試將關係切換爲@OneToMany
,它仍然爲null(儘管Hibernate調試輸出顯示SELECT * FROM tbl_friends WHERE personId = ? AND friendId = ?
查詢,但沒有其他)。
有關如何填充此列表的任何想法?謝謝!
我希望你'第三次來救我:)它的工作完美無缺,你的解釋清楚了我對ER的理解。非常感謝你,再次! :) – Magsol 2009-11-01 03:53:40
我可以結合朋友和朋友嗎?如果沒有,比我需要在這個問題中的一個實體jsonmanagedreference和jsonbackreference的幫助:http://stackoverflow.com/questions/24563066/hibernate-user-and-friends-jsonreference – dikkini 2014-07-05 07:50:08
我使用Hibernate 5和一個集合就足夠了 - 在tbl_friends中使用兩個創建重複行。 – mdziob 2017-05-26 08:09:41