Spring Data JPA 更新@Query 不更新:Flush 困境
在Spring Data JPA 中使用@Query 註解更新操作時,對於更新操作時,對於更新操作時,對於理解EntityManager 的行為至關重要。預設情況下,EntityManager 不會自動刷新資料庫的變更。這可能會導致意外結果,其中更新似乎被忽略。
在提供的程式碼的情況下,整合測試失敗,因為在更新查詢後對管理實體所做的變更未刷新到資料庫。要解決此問題,建議使用帶有@Modifying註釋的clearAutomatically = true選項:
@Modifying(clearAutomatically = true) @Transactional @Query("UPDATE Admin SET firstname = :firstname, lastname = :lastname, login = :login, superAdmin = :superAdmin, preferenceAdmin = :preferenceAdmin, address = :address, zipCode = :zipCode, city = :city, country = :country, email = :email, profile = :profile, postLoginUrl = :postLoginUrl WHERE id = :id") public void update(@Param("firstname") String firstname, @Param("lastname") String lastname, ...);
透過新增此選項,EntityManager將在執行更新查詢後自動刷新更改,確保
其他觀察:
以上是為什麼我的 Spring Data JPA @Query 更新不起作用:EntityManager 刷新之謎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!