deleted entity passed to persist
来源:互联网 发布:凡人修仙传优化 编辑:程序博客网 时间:2024/06/10 01:40
这个错误,出现在一对多关系对应中,一的一端配置了Cascade.PERSIST属性(ALL当然也包括),如下面的两个类:
public class ModuleOp{private Long id;@OneToMany(mappedBy = "module", cascade=CascadeType.ALL, fetch=FetchType.EAGER) public List<ModuleOp> getOps() { return ops; }public class ModuleOp{private Long id;@ManyToOne@JoinColumn(name="module_id")public Module getModule() {return module;}}
在删除的时候,要进行如下操作。
public String remove() {try {ModuleOp op = service.getOne(id);op.getModule().removeOp(op);service.delete(id);addActionMessage("删除成功");} catch (Exception e) {logger.error(e.getMessage(), e);addActionMessage("删除成功");}return RELOAD;}
注:service是自定义的中间类,其getOne和delete执行的是Spring data对应的操作函数。
参考文档:http://stenlylee.iteye.com/blog/317161
该错误很可能出现在如下情况:
Role和Permission为两个对象,分别对应数据库中的两个表,关系是一对多
Permission里面有hibernate映射对象permissionInstance.role
PERMISSION表中有外键关联到ROLE表的主键
javax.persistence.EntityNotFoundException: deleted entity passed to persist: [com.yourcompany.projectName.entity.Permission#<null>]
当删除permissionInstance的时候,报如题错误
通过一个笨办法解决这个问题,类似如下代码:
permissionInstance.getRole.getPermissions.remove(permissionInstance);
permissionInstance:要删除的对象
permissionInstance.getRole:获得permissionInstance所属的Role对象
getPermissions:获得Role对象的一对多关联对象collection(我习惯用List)
remove(permissionInstance):用List对象的remove方法删除permissionInstance
最后再通过delete或者remove删掉permissionInstance对象
- deleted entity passed to persist
- deleted entity passed to persist
- javax.persistence.EntityNotFoundException: deleted entity passed to persist:异常总结
- org.hibernate.ObjectDeletedException: deleted entity passed to persist: [xxx#<null>]
- deleted entity passed to persist: [dcms.ebridge.market.entity.Reward#<null>]
- detached entity passed to persist
- detached entity passed to persist
- detached entity passed to persist
- detached entity passed to persist
- detached entity passed to persist
- detached entity passed to persist
- detached entity passed to persist:
- detached entity passed to persist
- detached entity passed to persist
- detached entity passed to persist
- detached entity passed to persist
- detached entity passed to persist异常解决
- detached entity passed to persist异常解决
- ruby获取操作系统版本
- 第12课rpm&yum命令
- ecshop 源码分析
- ruby调用执行shell命令的方法
- “Android中ADB server didn't ACK fail to start daemon”的解决办法
- deleted entity passed to persist
- 10000以内的回文素数
- 网站接口汇总
- String 和StringBuffer的区别
- Android 中的 ManagedQuery()
- ruby读取、写入文件
- Java常用加密方法
- BlazeDS helloworld &Spring
- 第13课SVN命令总结