解决方案 »
- 我先问一下,各位学习java并且已经工作的大哥,大姐吗,你们所在的公司是不是会接C#方面的项目啊,或者说你们会不会C#啊,在工作中会不会遇到与C#有关的问题啊
- ssh中多表查询,jsp页面如何获取查询结果?
- jquery $(this).val()不明白在下例子中指哪个元素??
- 已经工作的来,网速比较好的速进 谢谢谢谢谢谢谢谢谢谢谢谢谢谢
- 如何用Web Service将数据添加到MySQL数据库中???
- 请教: 一个让我头痛的问题.
- 巨澜公司面试题
- 大家好,我的MIS系统问题!
- 我用jbuilder写了一个简单的SESSION(helloworld),结果报RMIC停止错误,为什么?
- 急着找工作(java/jsp/beans/servlet/EJB)
- 报错classnotfound,但是我的类存在啊
- 搞JAVA开发的 以下几门课程哪几门相对重要?
cascade=all 没有问题,一般都是one的一方是老大
我发现问题是出在 lazy=false 上
由于lazy=false 导致 在one的一方cascade=all前提下
many一方不能删除自己 把cascade=all 改成delete 可以解决
把lazy=false 改成lazy=ture 也可以解决
但是我想知道为什么many一方删除自己 怎么会有级联操作?还引发了deleted object would be re-saved by cascade我观察了代码 报错的时候 先查询了改日志 又查询了该日志对应的宠物 再查询了宠物的的所有日志
一共三条语句之后报错
而把cascade=all 改成delete 之后依然是这3条语句 之后执行的操作
谁能帮我理下思路
1、lazy=ture 为什么不报错
2、lazy=false 且 cascade=all 为什么报错
3、lazy=false 且cascade=delete 为什么不报错
inverse是关系被维护的意思,即一方在删除的时候,也会同时删除inverse=true的一方。
打个比方,你删除了宠物的某个日志,但是one的一方inverse=true,所以one的一方也会删除,但是one的一方还关联着别的many,由于外键约束的关系,无法删除,报错!!明白了吗?
当你many的一方只有1个元素的时候,我估计就不会报错了。
2、lazy=false 且 cascade=all 为什么报错
3、lazy=false 且cascade=delete 为什么不报错 (宠物可以有很多宠物日志 宠物是one的一方 日志是many的一方 现在问题就是cascade=all情况下 mang一方不能删除自己。为什么?)
我觉得应该是lazy和cascade 的问题,你知道吗,如果你吧lazy设为false的话,它就会把所有的信息都会查找出来,不管你有没有用到的信息,而你又把cascade设为all,代表任何的增删改查都可以,当你这样去执行删除语句的话,它就会先删除many的一方,然后再去删除one 的一 方,这样就会引发异常了,因为你的one的一方还有许多的many对应着它。我想应该是后者的可能性大些。楼主自己再多做几遍罗。
一百个员工记住一个老板容易还是一个老板记住100个员工容易呢
明显由员工记住老板比较科学(每个人记住一个人就好了)
在 one(老板)的一方 inverse=true 反转开启 将维护权交给了多的一方(员工)
我是这么理解的