2 u013179958 u013179958 于 2016.03.27 18:30 提问

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

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

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

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

这两种方式那个好?

4个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.27 18:52
已采纳

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

caozhy
caozhy   Ds   Rxr 2016.03.27 18:56

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

caozhy
caozhy   Ds   Rxr 2016.03.27 18:56

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

CSDNXIAOS
CSDNXIAOS   2016.03.30 11:27

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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
【SSH (八)】hibernate one-to-many例子
首先按照【SSH (七)】 struts2整合hibernate3 搭建一个SSH的空框架出来。 下面说一下hibernate的多对一映射。 数据库实体之间通常会存在关联,其中一种就是多对一关联,比如用户User和邮件地址Address两个实体,一个用户会有多个邮件地址,而一个邮件地址只会属于一个用户,也就是说用户会对应多个地址。在这里,用户就是“一”的一方,而地址是“多”的一方。关于
hibernate注解版关联映射Many-to-One/Many-to-Many等&异常处理
链接:http://blog.csdn.net/superdog007/article/details/8534443 属性介绍: 1.多对一: span style="font-size:16px;">@ManyToOne(fetch=FetchType,cascade=CascadeType)span>   @ManyToOne表示一个多对一的映射,该注
hibernate many-to-one // one-to-many
many-to-one 实体类的对应配置文件中 在many类中加入 one-to-many 在one实体类中加入set items属性,配置文件中加入
hiberante many-to-one fetch属性
hiberante many-to-one fetch属性 fetch属性有两个取值 join和select,默认select,区别看后面结果就清楚了 Card类 pulic class Card{ private Integer id; private String name; private Student student; //省略getset方法
hibernate one-to-many与many-to-one的使用
和one to one 一样,首先写了两个实体类Department(private int deptid;private String dname;private String location;  private Set employees;)和Employee(private int empid;private String ename;private Department dept;)生
Hibernate one-to-many / many-to-one关系映射
现实世界的1对多(多对1)模型在Hibernate中的映射对应为one-to-many / many-to-one。本文通过举例对此加以说明。并附以详细实现代码。   Page:  1|2> 现实生活中有很多1对多(多对1)的关系
Nhibernate Many-to-one 的配置问题
今天上午一直在进行Many-to-one 的配置,但一直报 “could not execute query” 的错误。 查找相关资料才发现是配置时出了错: 对于Many-to-one 里many的表的配置用:     对one的表配置用:   对于many-to-one 的标签描述此种关系如下: 1.name:属性名。指出many一方的类用哪个属性和one一方的类关联.
hibernate中hbm.xml<many-to-one><one-to-many>中一些属性详解
级联方式的操作说明与配置
不使用懒加载many-to-many的运用
在实际开发中一些的项目开发是不使用懒加载查询的,这时候一对多和多对多就要自己写查询的结构了,查询的时候一般都是刚开始有一个初始的查询条件来获取中介表的连表数据。再用连表数据的集合查询后一张表的结果集。           我们使用一个many-to-many作为例子讲解,在一个广告界面有许多的广告,广告是一个对象集合,每个广告都会有很多的标签。标签也是一个集合。一个标签对应着很多条广告。那么广告
【java】xxx.hbm.xml文件中的many-to-one和one-to-many理解
一、前言      在前几天中自己在学习ssh的过程中,发现Hibernate需要配置一个名字叫xxx.hbm.xml的文件,这个文件主要是使用Hibernate映射到相应的表。自然在这个文件里面会有表中相应的字段的名字的映射,这些就很好解决了,但是要有外键关联的话,就要添加many-to-one和one-to-many了,刚开始的时候小编也是模棱两可,所以通过博客来总结一下。二、说说ER图中的一对