hibernate 为什么关系映射时两个类,一个建set,一个对方的对象?

标题说的是多对一的情况,一对一时,两个类里都会加对方的对象,只有一个类有外键,建两个对象有什么意义。多对多时,两个类都会有对方的set集合,建的又在表中不实际存在,那有什... 标题说的是多对一的情况,
一对一时,两个类里都会加对方的对象,只有一个类有外键,建两个对象有什么意义。
多对多时,两个类都会有对方的set集合,建的又在表中不实际存在,那有什么作用
展开
 我来答
淼淼想某人
2015-01-07 · 超过62用户采纳过TA的回答
知道小有建树答主
回答量:91
采纳率:100%
帮助的人:105万
展开全部
标题这种是一对多,多对一双向关联
如果是单单的多对一,不需要set,不过要对象
为什么多的那一方~~要建对象,因为多的这方要知道自己属于哪个上级
比如有张表是group,还有张表是user
每个用户要知道自己是属于哪个组
所以要
Group a=new Group();
User b =new User();
User c =new User();
b.setGroup(a);
c.setGroup(a);
这样hibernate就知道,用户b和c的所属的组是a

set就这样理解
组里有哪些成员,所以有了set这个集合,来放这些成员

一对一建两个对象,这也是双向关联,这样,你查询的时候查询一个就知道另一个是什么了

多对多,表实际不存在,但在java中是存在的,这样是为了让程序员更好的编程,思维逻辑更顺
你这有我的set,我那有你的set,
追问

追答
其实我多对一,我就不写set了,因为我选的是单向没必要写set
这是我自己实践,可以创建的
网上这些罗列的太多,会混乱的,你自己可以试试~~~cascadetype,我喜欢用all
单向双向名字,就知道,一个单方面的
一个双方面~~~
你可以用load一个对象
Group g=(Group)session.load(Group.class, 1);
System.out.println(g.getName());
把FetcgType改成eager
如果是单向,他就只查一张表
双向,两张表都会查,你把
true这个打开
自己看下hibernate他的查询过程
你就知道了
bbdeff
2015-01-07 · 超过63用户采纳过TA的回答
知道答主
回答量:165
采纳率:0%
帮助的人:110万
展开全部
这是在建立之间的关系啊, 没有关系,怎么去获取对方?
一对一如果只设置一边 怎么从另外一边获取当前这边?
同理啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式