http://wenwen.sogou.com/z/q714388873.htm 这个回答挺详细的,希望对你有帮助。
双向的一方放弃关系的维护和单向意义不相同!
单向只能保证你可以通过一个对象(a)导航到另一个对象(b)。
当你在实际的业务中需要通过另一个对象(b)导航到一个对象(a)的时候,你怎么办啊?
还有关于inverse="true",它的作用是在一对多双向关联关系中使一方放弃维护到对方的关系(抽象)。其实就是减少重复执行多余的sql语句
你的理解是正确的。
一般情况下 都是自身一对多双向关联 在表的内部建立父子关系 可以无限递归,是一个树形结构
比如像这样结构的:
代码 名称 父节点
01 中国
02 北京 01
03 朝阳区 02
一般情况下 都是自身一对多双向关联 在表的内部建立父子关系 可以无限递归,是一个树形结构
比如像这样结构的:
代码 名称 父节点
01 中国
02 北京 01
03 朝阳区 02
补充jvm7572说明一下..hibernate设置了many to one或者one to many后在你的实体类里面的表现方式是不一样的(具体忘记了.好久没用了)....而且耦合度太高..如果没有特别要求的紧密性质..建议不要用这种关系在hibernate中...多两行简单的代码.你的性能会提高很多..
//--p.s.
我感觉你压根没明白1对多和多对1在hibernate中的配置关系...1对多和多对1在建立表关系是比如jvm7572学生和班级就的关系是多对1的.就是1个班级中包含了多个学生.反过来就是多个学生在一个班级中.永远都是学生表中含有班级的主键不可能班级表中出现学生的主键..首先说明下1对多和多对1的意义..减少数据冗余..表明实体和实体之间关系.
在说hibernate中配置. 1对多
类中编码
private java.util.list
多对1
private studentclass studentclass;
不明白的就在看看书吧.书上说的很明白了...上边的配置和类里面的映射参考吧..是可以互换的.但是看你是操作什么的多了.是操作学生的多,还是操作班级的多..简单操作就乘.数据量大就用jdbc.不要为了简单的编码而忽略了性能.
那么one to many和many to one不就是可以互换了吗?是可以互相转换.但不是可以随便转换的.当且仅当one to many和many to one可以互换时,one to many和many to one没有任何区别.怎么做都可以.