我使用Postgresql作为我的数据库,它包含一个名为user的表和一个名为friendship的表,该表有2个外键userA_id和userB_id。我知道如何使用mappedBy来检查基于userA_id的朋友关系,但我不确定如何检查userB_id。有没有办法告诉hibernate检查user表中的用户ID和友好表中的两列?

编辑:这是我目前拥有的代码。
@Entity
@Table(name = "users")
public class UserDB implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "userid", nullable=false)
public int userID; //not null
@OneToMany (targetEntity = FriendshipDB.class, mappedBy = "userA_ID", cascade = CascadeType.ALL, fetch=FetchType.EAGER)
//@OneToMany (targetEntity = FriendshipDB.class, mappedBy = "userB_ID", cascade = CascadeType.ALL, fetch=FetchType.EAGER)
public List<FriendshipDB> friends = new ArrayList<>();
}
@Entity
@Table(name = "friendships")
public class FriendshipDB implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "friendshipid", nullable = false)
private int friendshipID; //not null
@ManyToOne
@JoinColumn(name="usera_id")
private UserDB userA_ID; //not null
@ManyToOne
@JoinColumn(name = "userB_id")
private UserDB userB_ID;
}发布于 2021-03-17 21:01:59
我认为这是非常具体的映射,但我知道的唯一解决方案是像这样使用2关联:
@OneToMany(mappedBy = "user1")
private Collection<User> usersByFirst;
@OneToMany(mappedBy = "user2")
private Collection<User> usersBySecond;https://stackoverflow.com/questions/46480588
复制相似问题