Hibernate 更新部分字段的實現


在Hibernate 中,有時我們只需要更新部分字段,此時如果使用update()方法,會將所有字段都更新,對於沒有set的字段,就會設置成NULL,如果這些字段里面有非空的字段就會報錯。

解決的方法可以直接寫HQL語句,但是如果字段較多,並且更新的字段是不確定的時候,直接寫HQL語句就顯得比較麻煩。

另一種方法是在XML文件中設置dynamic-update="true",這樣設置以后,只對set了的字段更新,沒有set的字段就不會更新。

<class name="com.hzhi.entity.Person" table="person" dynamic-update="true">

還有一種有效的方法就是先根據需要更新的記錄主鍵,找出這條記錄,根據提交的參數set相應的字段,然后再update()。

// 根據用戶提交的ID找出person2
int id = person.getId();
Person person2 = xkmpService.findById(id);
// 設置需要更新的字段的值到person2
person2.setAge(person.getAge());
// 更新person2
xkmpService.updatePerson(person2);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM