为什么update的时候所有的属性都一起update,而不是只更新改变字段,其实这是一个比较值得探讨的问题。 (1)hibernate 可以根据映射文件(hbm.xml)控制insert和update语句的内容,eg:
<property name="subject" type="java.lang.String" update="false" insert="false" >
<column name="SUBJECT" length="200"></column>
</property>
那么这个字段将不被包括在基本的update语句中,修改的时候,将永远不包括 这个字段 (insert同
理)
默认设置为update="true" insert="true"
(2)dynamic动态SQL语句的配置<property>中
<property name="subject" type="java.lang.String" dynamic-insert="true" >
<column name="SUBJECT" length="200"></column>
</property>
dynamic-insert="true" 表 示insert对象时,生成动态的insert语句,如果这个字段的值为null则不
会加到这个insert语句中(update同理)
默认设置为dynamic-insert="false" dynamic-update="false"
(3) dynamic动态SQL语句的 配置<class>中
<class name="com.yourcompany.struts.association.model.SubjectBean"
table="test_db_subject" dynamic-update="true" dynamic-insert="true" >