首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多列的Hibernate MappedBy

多列的Hibernate MappedBy
EN

Stack Overflow用户
提问于 2017-09-29 09:45:38
回答 1查看 459关注 0票数 0

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

编辑:这是我目前拥有的代码。

代码语言:javascript
复制
@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;
}
EN

回答 1

Stack Overflow用户

发布于 2021-03-17 21:01:59

我认为这是非常具体的映射,但我知道的唯一解决方案是像这样使用2关联:

代码语言:javascript
复制
@OneToMany(mappedBy = "user1")
private Collection<User> usersByFirst;
@OneToMany(mappedBy = "user2")
private Collection<User> usersBySecond;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46480588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档