请教各位大神关于hibernate中many-to-many的问题

问题描述

在many-to-many的双向关联中,两端<set>里的cascade和inverse改如何配置呢,是否两边的cascade都能设置为all?看到有个帖子说只能一端的inverse设置为false,另一端一定要为true,可设置为true的一端怎么去维护中间表呢?

解决方案

解决方案二:
该回复于2011-01-24 09:09:05被版主删除
解决方案三:
如果是两个表共同维护,就用两个inverse=false
解决方案四:
只设置一个就行了,只用一方维护
解决方案五:
引用2楼hf2905330的回复:

如果是两个表共同维护,就用两个inverse=false

可以试试希望对你有帮助
解决方案六:
引用楼主gqzyyxh的回复:

在many-to-many的双向关联中,两端<set>里的cascade和inverse改如何配置呢,是否两边的cascade都能设置为all?看到有个帖子说只能一端的inverse设置为false,另一端一定要为true,可设置为true的一端怎么去维护中间表呢?

关于cascade,都设为all可以的。实际上任何搭配都可以的。关于inverse,不能两边都设为true,其他搭配均可。inverse设为true的一端只能依靠另一端来维护中间表,但这种维护和程序怎么写并没有关系,只是Hibernate运作的内部动作不同而已。
解决方案七:
刚试了下,cascade两边都设置为all时,我删除一边的一条数据数据,结果两边互相级联,删了很多的有用数据。PersonJob中间表person_job1;黎明;1;舞者;1;1;1;2;郭富城;2;商人;2;1;2;3;刘德华;3;演员;3;2;2;4;李白;4;诗人;4;2;3;5;鲁迅;5;作家;5;3;1;6;4;4;7;5;5;8;5;4;比如我删了Person表中id=1的黎明,结果如下了:PersonJobperson_job4;李白;4;诗人;6;4;4;5;鲁迅;5;作家;7;5;5;8;5;4;很纠结,不是要这效果啊,改如何设置呢?至于inverse是否两边都设置,我看到一位大神说:“为什么在多对多中不能由双方都来维护关系了:因为这样会导致重复更新中间表的可能,报出重复值的错误。”谁能解释一下么,自己还不知道该如何去测试,先谢谢各位大神了
解决方案八:
...什么效果啊,刚还排版好的,大神么费心看下吧,哪些3个数字在一起的是中间表,最前面的数字式id了....
解决方案九:
双向关联中cascade=“all”时,删除一方的数据会把另一方的也删除掉即cascade中有“delete级联”,出现比如我删了Person表中id=1的黎明,把job中与之级联的“舞者”和“商人”也删除了,设置成“save-update”可以避免。请问下,有什么好方法可以删除id=1的黎明时,删除perso_job中与“黎明”有关的关系值,不删除job中的值,当job中的值为孤儿节点时再删除它,这时候“save-update”就没这效果了?
解决方案十:
该回复于2011-01-24 13:47:29被版主删除
解决方案十一:
up,怎么没人解决了呢
解决方案十二:
该回复于2011-01-26 10:36:23被版主删除
解决方案十三:
顶下,期待回答
解决方案十四:
给你个建议:尽量少使用ORM的关联、级联功能,特别是多对多的关联!
解决方案十五:
分开把many-to-many拆开成2个one-to-many来做吧。。方便一些。但是牺牲了些性能。考虑,考虑而已=。=
解决方案:
引用13楼bao110908的回复:

给你个建议:尽量少使用ORM的关联、级联功能,特别是多对多的关联!

为什么要少用ORM的关联、级联功能

时间: 2024-09-08 08:02:51

请教各位大神关于hibernate中many-to-many的问题的相关文章

请教DevExpress大神,DevExpress中生成条形码的控件是哪个?

问题描述 请问DevExpress中哪个是生成条形码的控件?怎么用呢?最好大神给个小例子 解决方案 解决方案二:貌似没这个控件吧解决方案三:XRBarCode解决方案四:XRBarCode用于在报表中显示条形码.使用XRBarCode.Symbology和XRBarCode.SymbologyId来设置条形码的类型解决方案五:XRBarCode解决方案六:引用2楼azhe5201314的回复: XRBarCode 引用3楼happy09li的回复: XRBarCode用于在报表中显示条形码.使用

mysql-请教数据库大神,MySQL中的point类型数据取出来之后如何转化为字符串在后台使用?

问题描述 请教数据库大神,MySQL中的point类型数据取出来之后如何转化为字符串在后台使用? 请教数据库大神,MySQL中的point类型数据取出来之后如何转化为字符串在后台使用?我想通过这个得到的坐标去计算两个坐标之间的距离,但是取出来后没法转化成字符串,大神们,帮帮忙,谢谢了! 解决方案 select AsText(point) from T;

c语言-请教各位大神,为什么这个代码在普中板子上运行不了呢

问题描述 请教各位大神,为什么这个代码在普中板子上运行不了呢 #include #define uchar unsigned char #define uint unsigned int sbit A=P3^0; sbit B1=P3^1; sbit C=P3^2; sbit kin1=P0^0; sbit kin2=P0^1; sbit kin3=P0^2; sbit kin4=P0^3; sbit kout1=P0^4; sbit kout2=P0^5; sbit kout3=P0^6; s

请教大神,android中我需要在自定义控件中绘制一个透明的小三角行?

问题描述 请教大神,android中我需要在自定义控件中绘制一个透明的小三角行? 请教大神,android中我需要在自定义控件中绘制一个透明的小三角行,比如我需要在LinearLayout的底部绘制一个透明背景小三角,该怎么绘制呢? 我在绘制的时候将设置成透明背景,绘制小三角不显示,必须要给他设置一个背景才会显示,纠结啊 解决方案 可以定义一个path吧,连接成一个三角形,然后画出来 解决方案二: 让UI给你做一个三角形的透明图 设为背景 解决方案三: path连接成个三角形的话,如果这个自定义

计算方差-请教大神在opencv中怎么计算图像局部方差

问题描述 请教大神在opencv中怎么计算图像局部方差 请教大神在opencv中怎么计算图像局部方差, 请教大神在opencv中怎么计算图像局部方差, 请教大神在opencv中怎么计算图像局部方差,谢谢 解决方案 你也在学opencv吗,可以交流下 解决方案二: 局部,是正常的矩形还是不规则区域 矩形: 坐标的x y即像素点的x y根据长宽遍历 不规则: 我暂时没有计算过 你图像是灰阶还是RGB 如果灰阶 按照灰阶度使用公式即可,如果是RGB建议先用cvmerxx 函数忘记了 把RGB通道合成之

图像处理-请教各位大神,如何用python提取出两幅图像中不同的部分?

问题描述 请教各位大神,如何用python提取出两幅图像中不同的部分? 1C 各位朋友们好,我有一张图片1.png另一张图片2.png图片1与图片2只有一部分不相同的部分,现在我想以图片1为参照物,把图片2中与图片1中不同的部分裁剪出来形成图片3请教各位做图像处理的大神们应该怎么做,或者有相关的论文可以看的麻烦推荐一下,小白刚入手,还请指点一下,万分感谢,在此先谢过各位朋友们. 解决方案 你可以尝试调用 OpenCV 中的接口,我记得是有个拼接的功能 如果需要源代码方面的话,你可以参考hugin

累加-请教各位大神什么是“乘积高位和乘积低位”?

问题描述 请教各位大神什么是"乘积高位和乘积低位"? 小白求教请问计算机原理中的Acc累加器中存储乘积高位 和MQ乘商寄存器的乘积低位怎么理解啊?能否请各位大神举个例子.本人有点迟钝,先谢谢各位了! 解决方案 比如说用两个16位的数来相乘,得到的积有可能是32位的,这就需要有两个16位的寄存器来放这个结果,一个放低16位,一个放高16位 解决方案二: 这里的16位全部都是用二进制表示的吧.两个16位二进制数的乘积是与逻辑(意义)还是就是和普通乘积一样的.还有你说的乘积有可能是32位数,

服务器-请教各位大神关于django部署的问题

问题描述 请教各位大神关于django部署的问题 各位大神,我把django部署在阿里云的服务器上面,admin页面一直提示404错误, 解决方案 向各位大神请教个问题 解决方案二: 出现这种情况,通常是文件urls.py中的urlpatterns出了问题,你将 url(r'^admin/', include(admin.site.urls)), 修改成 url(r'^admin$', include(admin.site.urls)), 再测试一下看看

文档-关于VC数据的读入,请教各位大神、各位好心人士啦~~感之不尽,感之不尽啦~~

问题描述 关于VC数据的读入,请教各位大神.各位好心人士啦~~感之不尽,感之不尽啦~~ vc中如何将我实时得到的数据(脑电信号数据,格式是.ns2的)保存到txt文本文档中??? 解决方案 用ultraedit打开你的.ns2,搞清楚文件结构再说.如果是二进制文件,用ifstream. 解决方案二: 直接用CFile类或者FILE结构体对象来操作文件不就可以吗,可以以二进制的方式写入到txt中,不过这样写完后txt中是乱码,也可以用fprintf来格式化一个字符串流来写入到文件中 解决方案三: