比如就是一个班级和学生的映射:
班级里有多个学生,每个学生只能对应一个班级,简单的不能在简单的一对多。
首先我保存初始班级(假设有30名学生),会发出31条insert(都懂得)。
然后又转学过来5个,那肯定要获取该班级对应的学生集合,再将这5个家伙添加到集合中然后再保存班级(配置好级联),就会更新这个班级(1条update)并发出5条insert,但是紧接着又执行了30条update。
我想update的就是原来那30个家伙吧。用什么办法可以实现如果我没修改那30个就别update了,数据量大的话开销很大的。各位有经验的分享一下,拜谢!!!

解决方案 »

  1.   

    补充一下,我对班级调用的saveOrUpdate方法,有什么影响么?
      

  2.   

    为什么要获取 以前的集合再塞5个人进去?
    直接 super.save  这5个新人的集合 进 班级表不就完了么  就5个insert
      

  3.   

    配置 Inverse 为true,默认是false, 所以每次都是班级那一方在维护数据,它又不知道到底增加了多少了, 所以全部update,
      

  4.   

    是直接save就可以了,saveorupdate实际上是会重新更新的,而save直接就保存了