[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[郁闷]Hibernate的级联删除到底怎么搞啊?

上一篇:[备忘]CXF发布web service时,hibernate关系循环的问题
下一篇:[转帖]Flex的DataGrid中,CheckBox列的全选功能的实现

添加日期:2013/3/27 17:45:58 快速返回   返回列表 阅读4679次
cascade几种取值:
-----------------------------
save-update:级联保存(load以后如果子对象发生了更新,也会级联更新). 但它不会级联删除
delete:级联删除, 但不具备级联保存和更新
all-delete-orphan: 在解除父子关系时,自动删除不属于父对象的子对象, 也支持级联删除和级联保存更新.
all:级联删除, 级联更新,但解除父子关系时不会自动删除子对象.
delete-orphan:删除所有和当前对象解除关联关系的对象
none:...
级联保存和级联更新总是集合在一起的, 所以没单独的save 或 update 

------------------------------------------------------------------------
inverse="false" cascade="delete"时
inverse为false,也就是两边都管理关系表,inverse为true的话,则是操作主表时,不管从表。
cascade为delete,照理应该只管Delete啊~~

更新主表记录时,从表怎么也想更新啊,还想把关联字段更新为null,想啥呢?想解除关联关系?
Hibernate: update tbl_report_type set type_name=? type_no=? where id=?
Hibernate: update tbl_report_type_item set report_type_id=null where report_type_id=?
17:16:41,618  WARN JDBCExceptionReporter:233 - SQL Error: 1048, SQLState: 23000
17:16:41,619 ERROR JDBCExceptionReporter:234 - Column 'report_type_id' cannot be null

删除主表记录时,还是先更新从表的关联字段为null?猪啊。
Hibernate: update tbl_report_type_item set report_type_id=null where report_type_id=?
17:19:19,039  WARN JDBCExceptionReporter:233 - SQL Error: 1048, SQLState: 23000
17:19:19,039 ERROR JDBCExceptionReporter:234 - Column 'report_type_id' cannot be null
Hibernate: delete from tbl_report_type_item where id=?
Hibernate: delete from tbl_report_type_item where id=?
Hibernate: delete from tbl_report_type where id=?
------------------------------------------------------------
inverse="false" cascade="delete-orphan"时

从表的记录没给删,搞毛啊~~
Hibernate: update tbl_report_type_item set report_type_id=null where report_type_id=?
17:29:47,753  WARN JDBCExceptionReporter:233 - SQL Error: 1048, SQLState: 23000
17:29:47,753 ERROR JDBCExceptionReporter:234 - Column 'report_type_id' cannot be null
Hibernate: delete from tbl_report_type where id=?
--------------------------------------------------------------
inverse为true的话,则对从表毫无影响,只更新或删除主表
---------------------------------------------------------------

我只是想,删除时,把从表记录删除,更新时别给我动,到底要怎么搞啊?
真他娘的费劲,自己写sql算了。
 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved