解决hibernate 删除异常:deleted object would be re-saved by cascade (remove deleted object from2009-08-19 22:16我遇到到是第三种
解决hibernate 删除异常: deleted object would be re-saved by cascade (remove deleted object from associations) 收藏
在hibernate 删除关联时会出现eleted object would be re-saved by cascade (remove deleted object from associations)的异常,结合别人的和自己的经验通常有三种解决的方案:
方法1 删除Set方的cascade:
方法2 解决关联关系后,再删除
onside.getManys().remove(thisMany); //在所关联的一方的set中移走当前要删除的对象
thisMany.setOne(null); //设置所对应的一方为空,解除它们之间的关系
manyDao.delete(thisMany);
方法3 在many-to-one方增加cascade 但值不能是none
主要讲讲要点(以OneToMany为例):
1.如果Many端存在于One端的集合中,直接删除Many,就会抛出"deleted object would be re-saved by cascade"的异常,解决办法是在One端的集合中先删除Many端(先把他们之间的联系割断),然后再在Hibernate中删除Many端。
但在JDBC下直接删除Many端是可以的。
2.如果直接删除One端:
A.如果One端中没有设置Cascade为delete或者all,就会抛出“Cannot delete or update a parent row: a foreign key constraint fails”的异常。在JDBC下也是不行的(在建表时设置 ON DELETE CASCADE除外),因为Hibernate只是把JDBC下的异常封装而已。
B.如果One端中设置Cascade为delete或者all,删除的时候就会把所有Many端都删除。
分享到:
相关推荐
在使用Hibernate进行数据库操作时,有时会遇到一种异常情况,即在尝试删除一个对象时,系统抛出"deleted object would be re-saved by cascade (remove deleted object from associations)"的异常。这个异常通常发生...
37. **Constant object cannot be passed as var parameter** - **含义**: 无法将常量对象作为变参传递。 - **解决办法**: 使用可变对象或调整参数类型。 38. **Constant or type identifier expected** - **...
7)....Fixed: Attaching .PAS files instead of .OBJ in C++ Builder 2006+ Pro/Trial EurekaLog 7.2 Hotfix 1 (7.2.1.0), 3-April-2015 1)....Fixed: Wrong float-str convertion when ThousandSeparator is '.' ...
在Laravel框架中,"级联删除"是一种数据库操作机制,允许当删除一个记录时,与其相关的所有关联记录也会被自动删除。这个功能在数据管理中非常有用,特别是在处理具有多对一或一对多关系的数据库模式时。本文将深入...
安卓 扫雷源码 添加重新开始按钮支持 Android studio =========================...(This import summary is for your information only, and can be deleted after import once you are satisfied with the results.)
这几天训网络最困扰我的问题就是服务器...EXT4-fs error (device sda1): ext4_lookup:1593: inode #6004222: comm trash-expunge: deleted inode referenced: 6004301 类似这样的错误,看样子是sda1磁盘文件系统的问题
3. 提高效率:触发器可以提高我们处理数据的效率,例如在删除学生的学号时,自动删除借书记录表中的相应记录。 触发器的类型: ---------------- 1. Insert 触发器:在插入数据时触发。 2. Update 触发器:在更新...
- `deleted`: 删除标志。 2. **商品单位表 (Unit)**: - `unit_id`: 单位ID,主键。 - `name`: 单位名称。 - `deleted`: 删除标志。 3. **价格表 (Price)**: - `price_id`: 价格ID,主键。 - `p_id`: 关联的...
- `is_deleted`:是否被删除。 - `title`:标题。 - `content`:内容。 #### 7. ecs_admin_user - 管理员管理 - **用途**:管理员账号信息的管理。 - **字段说明**: - `user_id`:管理员的唯一标识。 - `...
XRDP(X Windows Remote Desktop Protocol)是一套远程桌面协议,允许用户通过图形界面远程访问Linux系统,类似于Windows的RDP。这个"XRDP一键安装脚本"是为Ubuntu设计的,方便用户快速在多版本的Ubuntu上配置和启用...
- Deleted:标记留言是否已被删除。 - Title:留言的主题。 - Message:留言的具体内容。 6. **admin_user** 表:管理员个人信息和登录信息。 - User_id:管理员的唯一ID。 - User_name:管理员用户名。 - ...
- **示例**: `UNDELETE C:\DeletedFile.txt` - 恢复C盘下名为DeletedFile.txt的文件。 **21. PROMPT (Prompt)** - **功能**: 自定义命令提示符。 - **语法**: `PROMPT [格式字符串]` - **示例**: `PROMPT $P$G` - ...
### IMAP命令详解 ...通过熟练掌握这些命令,用户可以轻松地管理自己的邮件,包括创建、删除、重命名文件夹以及添加、选择邮箱等操作。在实际应用中,这些命令的灵活运用可以帮助用户更加高效地处理电子邮件。
15. **`<del>`**:Deleted(删除的文本) - 标记已删除的文本。 16. **`<ins>`**:Inserted(插入的文本) - 标记新插入的文本。 #### 四、标题与段落标签 1. **`~<h6>`**:Header 1 to Header 6(标题1到标题...
- 解决方法:手动删除相关文件或联系技术支持。 12. **WARNING Did not find script 'xxxxxx.scp' section 'XXXXX'** - 警告信息:未能找到指定的脚本文件或其部分。 - 解决方法:检查文件路径和名称是否正确,...
- deleted:标记留言是否已被删除。 - title:留言的标题。 - message:留言的内容。 以上表格是ECSHOP核心功能的一部分,对于二次开发人员来说,理解这些数据结构可以帮助更好地实现定制功能、跟踪用户行为、...
《微信好友恢复:深入解析“wechat-deleted-friends-master”项目》 在我们的日常生活中,微信作为一款全球广泛使用的社交应用,已经成为了我们联系亲朋好友、进行商务沟通的重要工具。然而,有时由于误操作或者...
刚开始学习数据库操作,今天存数据时发现,保存的时候报错(Error 1292: Incorrect datetime value: '0000-00-00' for column 'deleted_at' at row 1) ,之后就搜索了下原因,是因为MySQL存日期时不允许出现这种格式...
- **解决方法**:删除损坏的锁定文件,然后重新启动应用程序。 **50. 0x2307(8967) - Corrupt family file.** - **描述**:损坏的家庭文件。 - **解决方法**:使用工具尝试修复文件,或从备份中恢复。 **51. 0x...