【发布时间】:2015-06-25 04:20:32
【问题描述】:
我需要有朋友关系,每个用户可以有零到多个朋友。
我不确定这是否是正确的方法以及为什么 hibernate 创建第三个表,我想外键足以建立关系。
我怎样才能摆脱第三张桌子?在数据库中为User生成了一张表,另外一张是Friend表,最后一张叫做User_Friend,它有User_id、friends_requester_id、friends_receiver_id字段。
这里的主要问题是每个用户都可以在 user_friend 关系中而不是友谊的一部分。例如
User_id friends_requester_id friends_receiver_id
1 1 2
2 1 2
3 1 2 <<<this one is incorrect,
user id 3 is not part of this friendship record
我的课程如下,我需要知道谁提出了请求以及关系开始的日期。
@Entity
public class User{
@Id
@GeneratedValue
long id;
@ManyToMany(cascade = CascadeType.ALL)
List<Friend> friends;
..
}
@Entity
public class Friend implements Serializable {
@Id
@ManyToOne
User friendRequester;
@Id
@ManyToOne
User friendReceiver;
@Temporal(javax.persistence.TemporalType.DATE)
Date date;
..
}
【问题讨论】:
标签: mysql hibernate hibernate-mapping