当前位置: 代码迷 >> Java Web开发 >> 新人错误:detached entity passed to persist
  详细解决方案

新人错误:detached entity passed to persist

热度:4236   发布时间:2016-04-10 22:54:02.0
新人异常:detached entity passed to persist
for (DelStorageInventory delStorageInventory : delStorageInventorys) {

System.out.println(delStorageInventory.getId());  //这个id有值

DelStorageInventoryOut delStorageInventoryOut = new DelStorageInventoryOut();
System.out.println(delStorageInventoryOut.getId());  //这个id为null
delStorageInventoryOut.setSn(this.snDao.generate(Sn.Type.delStorageInventoryOut));
delStorageInventoryOut.setQuantity(delStorageInventory.getQuantity());
delStorageInventoryOut.setMember(this.memberService.getCurrent());
delStorageInventoryOut.setOperator(this.adminService.getCurrent());
delStorageInventoryOut.setDelStorageInventory(delStorageInventory);
this.delStorageInventoryOutService.save(delStorageInventoryOut);
}

我要保存的是DelStorageInventoryOut这个对象,报的异常是DelStorageInventory 这个对象的。DelStorageInventory 这个对象的id是有值,但是我又不保存它。对我保存DelStorageInventoryOut这个对象有影响吗?
异常:
org.hibernate.PersistentObjectException: detached entity passed to persist: com.delawaresaving.entity.DelStorageInventory

求解答,新手不怎么懂。。
------解决方案--------------------
每次访问后session必须关闭,否则上一个操作错误了,下一个操作如果使用同一个session就会报错,而且是上一个错误。
------解决方案--------------------
怎么关闭session.close().基本就是这个,看你怎么封装了。dao层基本编码
获得session
try{
  使用session操作
}catch(Exception ex){

}finally{
   关闭session
}
------解决方案--------------------
save改为saveOrUpdate
------解决方案--------------------
把这个pojo的hbm.xml发上来看看这两个对象的映射关系
  相关解决方案