springDataJpa入門教程
-
springDataJpa入門教程(1)-基於springBoot的基本增刪改查
-
springDataJpa入門教程(2)-Specification動態條件查詢+排序+分頁
-
springDataJpa入門教程(3-1)-基於EntityManager原生sql多表聯合查詢+動態條件查詢+分頁
-
springDataJpa入門教程(3-2)-基於EntityManager原生sql多表聯合查詢+動態條件查詢+分頁返回自定義實體類對象
-
springDataJpa入門教程(4)-Example單表動態條件查詢+分頁
-
springDataJpa入門教程(5)-單表動態條件查詢+分頁
-
springDataJpa入門教程(6)-多表動態條件查詢+分頁
-
springDataJpa入門教程(7)-基於springDataJpa投影(Projection)返回自定義實體類對象
-
springDataJpa入門教程(8)-JPA EnableJpaAuditing 審計功能
-
springDataJpa入門教程(9)-spring jpa實體屬性類型轉換器AttributeConverter的用法
-
springDataJpa入門教程(10)-JPA使用過程中遇到的坑及解決方法
springDataJpa入門教程(10)-JPA使用過程中遇到的坑及解決方法
- jpa緩存導致無法查詢到更新後的數據
在開發中遇到這樣一種情況,對某條記錄做了查詢,然後又對某個字段單獨進行更新,更新後立即查詢更新後的結果,查詢的數據是更新前的。這個問題是由於JPA的緩存導致的。
解決方法:通過@Modifying註解的clearAutomatically類清除緩存,這樣更新後JPA就只能去數據庫獲取數據。但是clearAutomatically會對性能有一定的影響,所以clearAutomatically屬性應該視情況使用。示例如下:
@Modifying(clearAutomatically = true)
@Query("update User set name = :name where id = :id")
int updateUserNameById(@Param("name") String name,@Param("id") Long id);