多表关联下,某个数据未添加进入数据库,也没报错,其他数据都可以添加。
多表关联,对其中一个表进行编辑的操作时,需要将关联字段设为空值,因为一开始没有用到这几个字段,不设为空值会报错,那么当我们用到该字段进行操作时,若还是将其设为空值,则会导致数据添加不进去,因此需要将该字段设为空的代码删除。案例如下:
/**
* @ModelAttribute("updateStockincomebill")是SpringMVC提供的专门用于解决修改数据的时候数据丢失的问题
* @ModelAttribute当前类中所有方法执行之前都要先执行这个加了这个注解的方法
* 注解中加了名称之后,就表示指定方法之前先执行这个
* @param stockincomebill
* @return
*/
@ModelAttribute("updateStockincomebill")
public Stockincomebill beforeUpdate(Stockincomebill stockincomebill, String action){
if(null != stockincomebill && null != stockincomebill.getId() && "update".equals(action)){
//表示修改
Stockincomebill stockincomebillFromDB = stockincomebillService.findOne(stockincomebill.getId());
//让当前员工【持久化对象】与它所属的部门【持久化对象】断开关系
stockincomebillFromDB.setKeeper(null);
stockincomebillFromDB.setSupplier(null);
//该字段设为空,断开联系了,所以导致这个字段数据添加不进去数据库,删掉或者注释掉即可
// stockincomebillFromDB.setAuditor(null);
stockincomebillFromDB.getBillItems().clear();
//
return stockincomebillFromDB;
}
return null;
}