1. 程式人生 > >Spring JPA使用時,提高程式執行效率的幾個點總結

Spring JPA使用時,提高程式執行效率的幾個點總結

1, 在刪除操作時,最好不要用jpa,直接在dao方法上@query,也就是用sql語句,能快些:jpa實現刪除需要@transaction註解,該註解有可能造成tomcat出問題。。而且改成@query可以提升速度
2,sql中去掉trim 改java實現 在@query裡的sql語句中,避免出現類似於trim(c.brokerAccount) ,需要補全引數時用java程式碼String.format(“%1$-20s”, brokerAccount)來補全引數,再傳入sql;在5000條資料時,這兩種方法查詢時間能相差20秒
這裡寫圖片描述
應該去掉sql裡的trim
改成在給findByCustomerNo賦引數時
先custmoer=String.format(“%1$-20s”, customer)再賦值
java補齊比在sql裡快的多

3,在使用jpa 時不要隨便去new ,entityManager等工具類都要用@Autowired 進來 而不要去new出來,否則每次spring都要整個掃描一遍路徑下的包導致跑test很慢。

4,entity 中設定為@Id的 必須為非空欄位,否則:一旦你要查的資料中該欄位為空,查出來整條資料都是空的
5
Caused by: org.hibernate.jdbc.BatchedTooManyRowsAffectedException: Batch update returned unexpected row count from update [0]; actual row count: 4; expected: 1
原因:
entity裡設定的id查出來的有多條資料了 要設定為id 得保證查出來是唯一的