一:优化配置
1.关联映射的配置:对照之前的博客,如:inverse属性的设置(减少对同一对象的多条update语句):在one端设置为true,只会执行一次update语句
2.级联cascade属性设置:全部或部分设置为级联
如设置为sava-update(级联更新),当进行保存或更新时,会级联保存所有的关联映射的字段对象;
这就会导致一个问题:如果在many端有几千条数据被修改,则需要执行同样数量的update语句,会导致性能浪费
解决:在many端设置为none;在one端设置为需要的级联属性;则只要执行一条update语句更新set集合即可;但是这样也会导致在many端无法进行级联保存更新修改等操作;
3.实体类-表的映射文件:class:select-before-update属性的设置
true:当hibernate的session缓存中的对象属性值变化时,在缓存清理时才会对该对象进行update语句;但是会产生一条select语句先去数据库查询,然后两者比较决定是否有更改
false:无论是否有更改,都会进行update语句;
因此:对于修改较少的类:可以设置为true