Hibernate中one to many 和many to one 有什么区别?请朋友们帮帮我.谢谢
来源:百度知道 编辑:UC知道 时间:2024/05/28 04:09:22
要是能给实例比较最好了,谢谢朋友!
我的意思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&