只是举例来用:主单:Order,详单:Item,主单拥有详单的Set集合,详单拥有主单的对象
Set集合cascade="all",inverse="false"
在Action里面的代码
Order o = this.orderService.get(Order.class, id); // 通过主键获取主单
o.getItems().removeAll(o.getItems()); // 把主单的Set集合清空
for(int i = 0; i < list.size(); i++) // 循环页面传来的的List<Item>集合
{
o.getItems().add(list[i]); // 加入到主单的Set集合中
}
this.orderService.saveOrUpdate(o); // 底层用的也是saveOrUpdate()方法思路:
更新页面…页面有主单信息和所对应的详单信息…都可以修改
我是先把这个主单原来的所有详单删掉,然后在把修改页面的详单加入进去,这种做法问题:程序运行结果是把修改页面的详单insert到数据库,把主单原来的详单只是把对应的外键更新为了null
也就是
insert item ...
insert item ...
insert item ...
update item set order_id=? where id=?
update item set order_id=? where id=?
update item set order_id=? where id=?
update item set order_id=null where id=?
update item set order_id=null where id=?
update item set order_id=null where id=?我想要的结果应该是delete掉原有的详单
Set集合cascade="all",inverse="false"
在Action里面的代码
Order o = this.orderService.get(Order.class, id); // 通过主键获取主单
o.getItems().removeAll(o.getItems()); // 把主单的Set集合清空
for(int i = 0; i < list.size(); i++) // 循环页面传来的的List<Item>集合
{
o.getItems().add(list[i]); // 加入到主单的Set集合中
}
this.orderService.saveOrUpdate(o); // 底层用的也是saveOrUpdate()方法思路:
更新页面…页面有主单信息和所对应的详单信息…都可以修改
我是先把这个主单原来的所有详单删掉,然后在把修改页面的详单加入进去,这种做法问题:程序运行结果是把修改页面的详单insert到数据库,把主单原来的详单只是把对应的外键更新为了null
也就是
insert item ...
insert item ...
insert item ...
update item set order_id=? where id=?
update item set order_id=? where id=?
update item set order_id=? where id=?
update item set order_id=null where id=?
update item set order_id=null where id=?
update item set order_id=null where id=?我想要的结果应该是delete掉原有的详单
解决方案 »
- 怎样设置tomcat 默认对jsp页面的编码格式?
- 数据库中提取大量数据备份到文件中
- 严重: IllegalArgumentException in class
- struts2 interceptor 问题
- weblogic9.2配置问题(急)
- 不同包中访问同名的servlet
- hibernate Criteria查询单个对象怎么查询
- 我和朋友争论的一个关于J2EE访问数据库的问题,到底是我对还是他对,菜鸟求助!
- 编译容器代码出错,高手指教(我已经郁闷了好几天了)
- 哥们,如何将文件的内容上传到ORACLE数据库的CLOB字段中(中文问题)!急呀!
- 求助:如何实现在线用户查询功能?
- http status500
for(int id : 详单的idList){
通过id查询出详单对象;
然后调用详单service的delete方法,删除详单;
}
这样永远不会错