spring data jpa 批量儲存更新問題

2021-09-29 22:24:27 字數 865 閱讀 1548

使用jpa批量儲存時,看日誌發現是一條一條列印的,然後去看了下原始碼,果然是迴圈呼叫的單個儲存(巨坑啊)

經查詢jpa是可以實現批量儲存更新的,具體設定如下:

spring.jpa.properties.hibernate.jdbc.batch_size=500

spring.jpa.properties.hibernate.jdbc.batch_versioned_data=true

spring.jpa.properties.hibernate.order_inserts=true

spring.jpa.properties.hibernate.order_updates =true

其中:batch_size根據自己的資料庫情況來設定

配置好後,感覺終於可以批量儲存了,立馬試了一把,結果,一首涼涼。。。(並沒什麼用)

繼續查資料,終於發現了還有乙個坑,那就是jpa中主鍵策略會影響批量功能!!

如果主鍵策略使用了identity 也就是@generatedvalue(strategy = generationtype.identity),那麼批量功能不支援的,

如果要開啟批量,那麼就要使用sequence策略,也就是@generatedvalue(strategy = generationtype.sequence),

然後立馬去開啟,結果發現再次入坑,原來mysql資料庫是無法使用sequence策略的,已淚奔。。。。。

批量功能只能自己去單獨找尋方法實現了。

如果有錯誤的地方,煩請指正,有更好的方法,歡迎交流。。。

spring data jpa實體繼承

spring jpa中我們要將sql對映到物件,尤其是在spring boot這種高度自動化的環境下使用,大量的最優目錄結構與命名規則可以大大降低配置,約定大於配置貫穿其中。例如我們定義查詢dao,繼承jparepository即可。然後返回的物件,我們可以定義model entity table ...

SpringData JPA分頁查詢

首先我們需要知道springdata jpa 的幾個介面 其實看名字就大概懂了,也可以很方便的使用 首先我們的持久化層繼承jparepository,相當於繼承了增刪改查的持久化層以及分頁查詢的持久化層 所以如果我們要使用分頁查詢 我們只需要直接呼叫 由一開始的圖也可以看到pageable的其中乙個...

springData Jpa簡單查詢

一 介面方法整理速查 下表針對於簡單查詢,即jparepository介面 繼承了crudrepository介面 pagingandsortingrepository介面 中的可訪問方法進行整理。1 先按照功能進行分類整理,分為儲存 刪除 查詢單個 查詢多個 其他5類。2 再將不建議使用的方法置灰...