使用相同实体的递归多对多关联的Hibernate
使用相同实体的递归多对多关联的Hibernate
另一个Hibernate问题... 😛
使用Hibernate的注解框架,我有一个User实体。每个User可以有一组朋友:其他User的集合。然而,我无法弄清楚如何在User类中创建一个由User列表组成的多对多关联(使用一个user-friends中间表)。
这是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",
joinColumns=@JoinColumn(name="personId"),
inverseJoinColumns=@JoinColumn(name="friendId")
)
private List
}
用户-好友映射表只有两列,两列都是指向tbl_users表的uid列的外键。这两列分别是personId(应映射到当前用户)和friendId(指定当前用户的朋友的id)。
问题是,"friends"字段始终为null,即使我已经预先填充了friends表,使系统中的所有用户都是彼此的朋友。我甚至尝试将关系切换为@OneToMany,但它仍然为null(尽管Hibernate的调试输出显示了一个SELECT * FROM tbl_friends WHERE personId = ? AND friendId = ?的查询,但没有其他内容)。
有什么想法如何填充这个列表吗?谢谢!