项目中在session.flush(); 抛了异常
遇到这个问题原因是:1.表之间有关联。在复制数据。
用了hibernate,并在复制数据时将要复制的数据对象A的所有属性赋给了对象B。
解决方案:
将那些关联的数据也复制一遍,并更新B的那些关联对象。这些关联数据中的一个或多个为空时也必须更新B中相应的关联对象
IForwardDateStockOrder fwdStockOrder
if(!stockOrder.getIsChgWaive()){//if is_chag_waive =0 exists stock charges.
List<IStockCharge> stockCharges = new ArrayList<IStockCharge>();
logger.info("fwdStockOrder.getFwStockCharges" +fwdStockOrder.getFwStockCharges());
BeanUtils.copyProperties(fwdStockOrder.getFwStockCharges(),stockCharges);
logger.info("stockOrder stockCharges" + stockCharges);
stockOrder.setStockCharges(stockCharges);
}else{
stockOrder.setStockCharges(null);
}
然后再set进去就不会出现该问题
本文介绍在使用Hibernate框架复制数据过程中遇到的异常及其解决方案。主要问题是由于数据对象间存在关联关系,在复制过程中未同步更新关联对象导致。文章提供了一种通过同步复制所有关联数据的方法来避免这一问题。
4906

被折叠的 条评论
为什么被折叠?



