hibernate中的inverse到底怎么回事?

MFC_learner_1985 2011-08-16 08:56:52
1. 谁能解释一下 inverse 的来龙去脉,到底怎么回事?
2. 我有一个 foreign key 的关系,比如 A 表有个 foreign key 是 B 表的 id,怎样设置 hibernate annotation 可以使得在删除 B 表相关记录的同时,自动删除索引这些记录的 A 表中的记录?
...全文
127 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
代碼一族 2011-08-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wenjie4892543 的回复:]
2. 我有一个 foreign key 的关系,比如 A 表有个 foreign key 是 B 表的 id,怎样设置 hibernate annotation 可以使得在删除 B 表相关记录的同时,自动删除索引这些记录的 A 表中的记录?

一直搞不明白inverse="true"是什么意思 今天看书 上的一句很通俗的话:"校长不需要记住所有学生的名字,这样负担太重,让学生记住校长就好 我的……
[/Quote]
+1
wenjie4892543 2011-08-16
  • 打赏
  • 举报
回复
2. 我有一个 foreign key 的关系,比如 A 表有个 foreign key 是 B 表的 id,怎样设置 hibernate annotation 可以使得在删除 B 表相关记录的同时,自动删除索引这些记录的 A 表中的记录?

一直搞不明白inverse="true"是什么意思 今天看书 上的一句很通俗的话:"校长不需要记住所有学生的名字,这样负担太重,让学生记住校长就好 我的理解是不需要主键来记录所有的外键,,而是通过外键来找主键

如果像你上面的需求我认为应该是相反的,,你需要通过删除主键达到删除所以外键的效果!!
在主键表中 set 外键时inverse=false cascade=all
代碼一族 2011-08-16
  • 打赏
  • 举报
回复
inverse 一般是用在hibernate 配置文件中, 实际作用是控制反转。 多应用于 多对一、或一对多、多对一 这样的双表或多表查询中。 inverse=true 就是由对方控制 关联。 否则由自己维护。 这样的的目的可以 在底层查询语句中减少SQL语句的编写量。
飓风zj 2011-08-16
  • 打赏
  • 举报
回复
控制反转啊 就是一对多的时候 一些工作要交给多的一方来处理关系 很方便的
忧郁的苦笑 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kevin_520_kevin 的回复:]
控制反转的问题,一般配在一对多的set节点中,取值为false和true,默认值为false,false的时候控制权限交给对方,反之是自己控制。还有一个cascade属性,控制级联删除,保存等关系的,控制权限弄好,删除一方的时候级联删除多方

说的不错,inverse可以减少hql语句的写法
蛋黄车 2011-08-16
  • 打赏
  • 举报
回复
inverse的真正作用就是指定由哪一方来维护之间的关联关系

inverse=true的含义,由双向关联的另一方维护该关联,己方不维护该关联,只能进行查询操作
kevin_520_kevin 2011-08-16
  • 打赏
  • 举报
回复
控制反转的问题,一般配在一对多的set节点中,取值为false和true,默认值为false,false的时候控制权限交给对方,反之是自己控制。还有一个cascade属性,控制级联删除,保存等关系的,控制权限弄好,删除一方的时候级联删除多方

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧