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算了。
|