永发信息网

hibernate 执行 一对多操作 主表 insert 后,次表竟然做update操作,哪位高人指点下啊 纠集了1天了。。

答案:4  悬赏:60  手机版
解决时间 2021-04-04 14:45
我有两张表project和projectAffix:关系为 项目(project)对projectAffix(附件)是一对多关系

Action 中做的操作:
ProjectAffix affix = new ProjectAffix();//由于是附件,用的是Struts2的附件传值 页面一个name对应着Action中的3个值OGNL 我不知道怎么来封装,所以进行Add操作时,new了个瞬时对象
Set projectAffix = new HashSet();//道理一样,对方往单方里面set的只能是Set 类型ProjectAffix;同上
affix.setFileName(path+"\\"+fileFileName);//附件上传文件所在的全路径
projectAffix.add(affix);//Add一个对象到Set集合中
affix.setProject(project);//set 对方附件对应的Project
project.setProjectAffix(projectAffix);//将projectAffix赋值给一方project
projectService.add(project);进行Add操作

配置文件为:









我在页面新增 Project 时,选择插入第一条数据时,后台输出为:
Hibernate: insert into project (customer_id, proName, proContent, state) values (?, ?, ?, ?)
Hibernate: insert into projectAffix (project_id, fileName) values (?, ?)
当插入第二条时:
Hibernate: insert into project (customer_id, proName, proContent, state) values (?, ?, ?, ?)
Hibernate: update projectAffix set project_id=?, fileName=? where proAffix_id=?
当我删除掉project时可以正常的删除掉projectAffix 表中的记录,做级联删除;更新也可以正常执行;就是当insert into project 表,然后hibernate自动的执行对projectAffix表进行更行,不知道什么原因,求高人指点啊。。
最佳答案
你是删除的时候做的修改还是插入的时候?
删除的时候hibernate一般先把关联全部置成null
然后再由用一条deletel删除掉
插入的时候也一样,先不控制管理关系,全部设置成null,在调用update修改。
不知道满意不?给个最佳吧
全部回答
把 cascade="all" 这个属性去掉
update的关键在ID,请检查你的次表ID是否已存在!
配置没有错,可能是你代码的问题。 再看看别人怎么说的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
there( ) any cakes in the fridge括号里填什
兰芝隔离霜含重金属吗
求被虐主文主角捡回家txt百度云
我这里是河北霸州,打算加盟北青旅,怎样加盟
咕咕鸟叫是什么意思,咕咕鸟叫有什么征兆
填入下面语段横线中最恰当的一项是生产衬衫的
女儿胸部有个疙瘩,过了几个月了由于摸的太频
手表的标志牌子可以换成其他牌子吗?
求八万落地车型推荐
公司10月社保增加3人 对8月和9月的公司缴费有
单选题类比平面内“垂直于同一条直线的两条直
蜗牛的60全能卡,可以入手吗?
非商业企业是什么,商业服务业是什么意思?属
我是个新手,PRO/E也可以象CAD那样有快捷
facebook messenger 怎么发普通短信
推荐资讯
贪睡是什么原因,女性嗜睡是什么原因
求一部小说,女主是民国名媛,大婚当日被丈夫
阿珂台词王者荣耀,王者荣耀貂蝉圣诞恋歌
某水泥厂去年生产水泥232400吨,今年头5个月
曲线在某点的切平面怎么求
关于奋斗的古诗句,有关奋斗的诗句
求一个魔兽世界副本地图查看器[Atlas]中文版
厨房和卫生间打算做铝镁合金推拉门~门套要不
男人得到女人第一次之后是什么感觉?什么想法
低碳经济的实质是提高能源利用效率和创建清洁
“1918年的欧洲不同于1914年的欧洲”。(《全
我出车祸,我花的钱保险公司都能给我报吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?