在項目中遇到利用hibernate執行查詢後立馬又對資料庫資料進行了更新,導緻了錯誤。public String getName() { if(this.name==null) { this.name=""; } return this.name; }
因為在資料庫中是null,在hibernate查詢時會設定成“”。hibernate會任務session中的實體發生了改變,就會執行update。
解決方式:
采用的解決辦法是将配置檔案增加一個屬性access="field" 這樣就不會通過get方法比較屬性而直接通路屬性字段
<property name="name" type="java.lang.String" access="field">
<column name="name" length="20" />
</property>
default-access="field ¦property ¦ClassName"