关于Hibernate级联更新的一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 20:56:06
比如两个类Classes(教室),Student(学生)是一对多的关系。并且双向关联,而在Classes的hbm映射中包含Student的一个set有属性inverse=true和cascade=all。就是维护关系权在Student上,而且Classes对Student级联保存、更新、删除。而Student里面没有对Classes的级联操作。
如果Classes中有一个属性需要更新,然后调用了session.update(class);的方法进行更新。的确Classes是更新了,但是同样也把Classes关联的所有的Student更新了一次,比如Classes中有60个Student就多更新了60次。但是其实Student中是没有属性改动的。那多发出了这么多更新的SQL语句,肯定要影响性能,我想问问这应该怎么办呀。怎么才能在更新Classes时不级联更新Student呢?Classes必须要级联保存Student,但是不需要更新,应该怎么做啊?

cascade=all

inverse=false

Classes的hbm映射包含Student的属性set

inverse=true
cascade=all

关系在Student上
而且Classes对Student级联保存、更新、删除

----------

Classes必须要级联保存Student, 但Student不要更新

----------

see?

then programm it....