我有一个名为User的表,如下所示:
public class User
{
private Long userId;
private String username;
//Other fields;
}
现在,假设用户可以有其他用户朋友。那么我如何在JPA中创建这种关系。
同时,我正在数据库的用户表中执行此操作:
USER_ID
USERNAME
USER_FRIENDS
在用户实体中,如下所示:
public class User
{
private Long userId;
private String username;
//Other fields;
@OneToMany(cascade = CascadeType.ALL)
@Column(name = "USER_FRIENDS")
private List<UserEntity> friends;
}
这是行不通的。那么,如何在JPA中实现这一目标?提前致谢!
经过@Florian Schaetz的研究和帮助之后,我找到了自引用实体的解决方案。需要用户可以有其他用户朋友,并且该用户可以与其他用户成为朋友。因此,我所做的就是这样:
public class User
{
private Long userId;
private String username;
//Other fields;
@JoinTable(name = "USER_FRIENDS", joinColumns = {
@JoinColumn(name = "ADDING_USER", referencedColumnName = "USER_ID", nullable = false)}, inverseJoinColumns = {
@JoinColumn(name = "ADDED_USER", referencedColumnName = "USER_ID", nullable = false)})
@ManyToMany
private Collection<User> friends;
@ManyToMany(mappedBy = "friends")
private Collection<User> addUser;
}
希望这会帮助其他人!再次感谢朋友!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句