hibernate里的关系怎么理解

单向、双向、1-1,1-N,N-1,N-N请举例说明,怎么用?1-N这些关系知道,就是怎么整合单向、双向,而且表里的的关系是死的,1-N这些究竟怎么用在hibernate... 单向、双向、1-1,1-N,N-1,N-N请举例说明,怎么用?
1-N这些关系知道,就是怎么整合单向、双向,而且表里的的关系是死的,1-N这些究竟怎么用

在hibernate里实现这些关系有什么用,后面还是需要class来执行逻辑
----------------------------------------------------------------
是不是可以这么理解,比如双向N-N(学生-班级),可以通过学生查到班级,也可以通过班级查到学生,只需要hibernate的关系就可以查到了?
------------------------------------------------------------------
上面的问题还不明白,又有一问题,在N-N关系里,插入了左边的N信息,那么就一定要有右边的N信息吗?
-------------------------------------------------------------------
用个例子来问把,两个表,一个用户表,一个好友表(A加B为好友,B可以不加A好友),上面可以用到hibernate的N-N吗?如果可以是单向还是双向?
展开
 我来答
Big嘴
2010-12-23 · TA获得超过4097个赞
知道小有建树答主
回答量:697
采纳率:50%
帮助的人:634万
展开全部
首先hibernate中的关系分为数据库表的关系和hibernate中对象的关系两个,缺一不可!
当你在创建对象的时候,如果你要保存这两个对象之间的关系,就要在对象中保存另外一个对象的引用。
如:
public class Person{
private String name;
private Address add;
}
public class Address{
private String street;
private String xiaoqu;
}
人对象中保存了地址这个对象的引用,就说明这两个对象存在关系。具体关系分好多种:
一对一、一对多、多对多关系
从方向上又可分:单向关联和双向关联。
上个例子就是单向一对一关联
数据库中你也要有相应的关系结构,这样配置了hibernate的级联关系属性后,hibernate就可以帮助你维护这种关系了。
具体的你可以看看孙卫琴的书。关于hibernate的!
当然hibernate的配置文件中也要配置!
多对多关系,就是两个对像相互保存对方引用。数据库表中有对方表的主键做外键。
百度网友bdea8e89e
2010-12-20 · TA获得超过314个赞
知道答主
回答量:248
采纳率:0%
帮助的人:185万
展开全部
这个其实就跟数据库表对应。
1对1的话就比如说 一个学生只有一个准考证,一个准考证号也只对应一个学生。
1对多的话就比如说 一个班级有多个学生,但一个学生只有一个班级。
多对1跟1对多不是一个事情吗? 多个学生对一个班级。
多对多 就像是 一个学生可以修多门课, 一门课也可以有多个学生修。

在hibernate中实现 其实也就是实现 数据库表里面的关系对应。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
峰吹过地无痕
2010-12-21 · 超过33用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:86.7万
展开全部
hibrnate的优点有很多.但在我理解最核心的是将对象直接存到二维的数据库中.
我们的数据库大多是二维表的形式.
而我们写的java确实面向对象.
这样在存到数据库时难免有个思维转换的过程.
有了hibernate就屏蔽掉了这层中间环节.你写好映射文件.
那么你只需要面向对象就行了,怎么存到数据库hibernate会帮你完成.
当然你所写的这些死的关系 就是告诉hibernate这些对象之间存在着怎样的关系
而以后hibernate会按照这种关系映射到二维表中.
因为二维表之间所存在的关系.
很难在没有映射文件的情况下就表达清楚.
所以映射文件中这些关系的作用就这样体现了.

至于单向双向.如2楼所说.
但我做东西的时候.就会想a-->b可不可以查
b-->a可不可以查
而不是想有没有必要让它可以查.
如果不是硬性要求单向.
还是建议双向的.这样灵活些.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
__略懂
2010-12-20 · 超过21用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:40.3万
展开全部
1-N 单向:可以从一方查多方 ,多方查不到一方;反之亦然。这种维护的仅仅是一种逻辑关系。用于关系型数据库。要找个非关系型数据库就没用了。
要说hibernate 就是管理这些关系....要扯就多了:什么基于主键啊 基于外键啊 这些 乱七八糟的话一大堆 还是没懂。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小猪要跳崖
2010-12-24 · TA获得超过289个赞
知道答主
回答量:283
采纳率:50%
帮助的人:148万
展开全部
这些主要是在各个表的xml文件中体现
在主键表的xml文件中是many-to-one
在外键表的xml文件中是set
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式