用于联系人列表的Hibernate Pojo设计

时间:2015-07-03 19:38:14

标签: java hibernate database-design

我想为每组用户和每个用户的联系人列表实现数据库。 为此,我想而不是创建数据库表,想要创建 Hibernate Pojo。

首先我想:

class User{

  BigDecimal Id;
   //Contact List
  Set<User> contacts
}

但上面会创建数据冗余;

所以我想,创建用户作为主表 还有另一个班级联系

class User{
String userName;
BigDecimal userId;
@OneToOne;
Contact contact;
}

class Contact{
@OneToOne
User user;
@?;   
Set<User> users;
}

但是我无法弄清楚Contact的用户集应该如何映射用户类。

请任何人建议什么应该是设计方法。

1 个答案:

答案 0 :(得分:1)

用户&amp;联系表将是一对多的关系。 一个用户可以拥有多个联系人。

class User{
String userName;
BigDecimal userId;
@OneToMany(mappedBy = "user")
Set<Contact> contacts;
}

class Contact{
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "USER_ID")    
User user;
}

USER_ID将成为用户表格中的主键。联系人表中的外键。

查看此link以获取示例