hibernate多对多删除被控方时出现异常解决
2009-11-27 13:44
375 查看
ProuductItem 和 OtmsCharge是多对多关系,OtmsCharge是主控方。
主要的映射代码如下
ProductItem:
OtmsCharge:
直接删除ProductItem会发生异常,正确的删除方法是:
主要的映射代码如下
ProductItem:
<set name="charges" table="ChargeDetail" inverse="true"> <key column="productItem"></key> <many-to-many column="chargeId" class="com.xycentre.otms.usermanager.model.OtmsCharge"></many-to-many> </set>
OtmsCharge:
<set name="productItems" table="ChargeDetail"> <key column="chargeId"/> <many-to-many column="productItem" class="com.xycentre.otms.model.ProductItem"></many-to-many> </set>
直接删除ProductItem会发生异常,正确的删除方法是:
public void unbindProductItem(Long piId){ if(piId < 0)return; Object piObj = this.getHibernateTemplate().get(ProductItem.class, piId); if(piObj != null && piObj instanceof ProductItem){ ProductItem pi = (ProductItem)piObj; Set<OtmsCharge> charges = pi.getCharges(); for(OtmsCharge charge : charges){ charge.getProductItems().remove(pi); } this.getHibernateTemplate().delete(pi); } }
相关文章推荐
- 解决hibernate 删除异常: deleted object would be re-saved by cascade
- 使用MySQL和Hibernate时,出现java.lang.UnsupportedOperationException: Update queries only supported through HQL异常的解决方法
- hibernate - 解决表结构外键限定为非空,级联保存和级联删除抛异常的问题
- 关于使用SSM整合的时候,使用hibernate校验框架出现500异常问题解决
- Hibernate查询出现java.lang.IllegalArgumentException异常解决方法
- 使用hql使用order by子句出现异常和数据异常的解决办法org.hibernate.hql.internal.ast.QuerySyntaxException
- fastjson序列化hibernate代理和延迟加载对象出现no session异常的解决办法
- 解决hibernate 删除异常: deleted object would be re-saved by cascade (remove deleted object from associations)
- myeclipse 使用weblogic10启动hibernate项目时出现ClassNotFoundException: org.hibernate.hql.ast.HqlToken异常的解决办法
- 解决hibernate 删除异常:deleted object would be re-saved by cascade
- 解决hibernate删除时的异常 deleted object would be re-saved by cascade (remove deleted object from associa
- 解决hibernate 删除异常: deleted object would be re-saved by cascade (remove deleted object from associatio
- hibernate查询时出现LazyInitializationException异常的解决办法
- fastjson序列化hibernate代理和延迟加载对象出现no session异常的解决办法
- org.hibernate.hql.ast.HqlToken 异常及hibernate不能删除功能解决
- 序列化hibernate代理和延迟加载对象出现no session异常的解决办法
- 解决hibernate删除时的异常 deleted object would be re-saved by cascade (remove deleted object from associa
- Hibernate 多对一删除异常解决办法
- 解决Hibernate删除异常:deleted object would be re-saved by cascade
- fastjson序列化hibernate代理和延迟加载对象出现no session异常的解决办法