在Hibernate中可以利用@DynamicInsert和@DynamicUpdate生成动态SQL语句,即在插入和修改数据的时候,语句中只包括要插入或者修改的字段。
这2项默认是为false的,会更新或者插入所有字段。所以如果表中字段比较多,可以设置为true来开启动态模式,只插入或者更新有变化的字段,可以节省SQL语句的执行时间,提高程序的运行效率。
开启方法:
在hbm.xml 属性里面配置 :
<class name="XXX" table="XXX" dynamic-update="true" dynamic -insert ="true" />
注解配置:
@DynamicInsert(true)
@DynamicUpdate(true)
注意和下面属性的区别
- insert属性:设置为false,在insert语句中不包含这个字段,表示永远不会被插入,默认true
- update属性:设置为false,在update语句中不包含这个字段,表示永远不会被修改,默认true
- mutable属性:设置为false就是把所有的元素的update属性设置为了false,说明这个对象不会被更新,默认true