Hibernate中one to many 和many to one 有什么区别?请朋友们帮帮我.谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/28 04:09:22
Hibernate中one to many 和many to one 有什么区别?请朋友们帮帮我.谢谢
要是能给实例比较最好了,谢谢朋友!
我的意思one to many 要是反过来不就是many to one了吗?
我要是把相关的配置 调换一下.
那么one to many和many to one不就是可以互换了吗?
我是想问,这时候one to many和many to one有什么区别?
请朋友们.给说一下,谢谢!

这个很好理解。
从字面意思上看,one to many 是一对多,many to one是多对一。很明显就是区别(说实话,楼主问这样的问题,我都觉得很诧异,仿佛问黑与白有什么区别一样)。

从实际开发角度来说,一对多反过来就是多对一。我们以学生和班级为例。学生对班级是many to one,班级对学生就是one to many。
那到底我们配置班级方的one to many,还是配置学生方的many to one呢。这个问题就要看实际开发需求了。

在这个需求中,从经验上可以想象,我们查看班级的时候,并不一定要看到每个学生的信息。因为学生很多。
但我们查看学生的时候,可能想看班级的信息,因为一个学生对应一个班级。在这种情况下,我们当然是配置学生方的many to one,然后做级联操作。以便取出学生时取出对应班级。

而事实上,大多数情况下,many to one比one to many的应用也更为防范,这主要是基于一个效率考虑

补充jvm7572说明一下..Hibernate设置了many to one或者one to many后在你的实体类里面的表现方式是不一样的(具体忘记了.好久没用了)....而且耦合度太高..如果没有特别要求的紧密性质..建议不要用这种关系在Hibernate中...多两行简单的代码.你的性能会提高很多..
//------------p.s.
我感觉你压根没明白1对多和多对1在hibernate中的配置关系...1对多和多对1在建立表关系是比如jvm7572学生和班级就的关系是多对1的.就是1个班级中包含了多个学生.反过来就是多个学生在一个班级中.永远都是学生表中含有班级的主键不可能班级表中出现学生的主键..首先说明下1对多和多对1的意义..减少数据冗余..表明实体和实体之间关系.

在说hibernate中配置. 1对多
<list name="studentId" cascade="all" lazy="true" inverse="true" table="class_table&