Hibernate官方推荐使用many-to-many还是many-to-one?

假设实体的关系就是多对多,我应该是在数据库中创建两张表,还是三张表?

如果创建两张表,那么就需要在xml中配置many-to-many

如果创建三张表,那么就需要在第三张的表中存储其余两个表的主键,在xml中直接配置many-to-one

这两种方式那个好?

4个回答

具体使用哪种应该由你的业务决定的吧,如果是多对一的关系就使用many-to-one例如一个人有多个邮箱地址;多对多关系,例如选课一个人可以选多个课,而一门课程又被多个人选择,双向多对多就用many-to-many。

根据需要,比如说购物就是典型的many-to-many,一个商品可以放入很多订单,很多人买。一个订单可以包含很多种商品。比如说你一个订单买了一个手机一个壳一个耳机。

除了m2m m2o,还有 o2o,有时候我们需要把大表拆开,那么就是o2o。比如用户的头像虽然也属于用户,但是二进制文件我们单独放一个表。

public class Person {
private Long id;
private String name;
private Depart depart;}

public class Depart {
private Long id;
private String name;
Set person;}

person.cfg.xml  :

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐