天天看點

Hibernate執行查詢後又立馬執行了更新(default-access)

在項目中遇到利用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"