JPA進行資料庫資料的更新,現在總結有以下思路:
- 當需要更改的字段比較多時,可以将需要更改的字段封裝在實體類當中,然後不需要更改的字段通過findone找到對應資料也封裝到此實體類當中,然後調用saveandflush方法進行update。如果不将不需要更改的字段封裝到實體類中save的話,會将資料庫中的對應字段置空。
- 當需要更改的字段少時,例如僅僅對單個時間或者狀态進行更新,可以在對應的repository添加update方法
Spring Data JPA: 更新字段采坑記 三個注解缺一不可!!!
缺少@Modifying.報錯如下!
org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML
缺少@Transactional,報錯如下
nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query