Spring Data JPA撐持JPQL語法,可以利用注解的體例自界說查詢語句,可以利用sql原生的語法,也可以利用JPQL語法,我們利用@Query注解的value和nativeQuery的值。利用聲明式的JPQL語句,可以在啟動項目標時辰就知道語法是否準確,語法錯誤額時辰啟動就會報錯。
起首,聲明的注解在Repository的查詢方式上,例如 select u from User u 我們可以看出和原生sql有些分歧之處,別的也撐持 大于小于等查詢select u from User u where u.age > 30。
利用注解實現恍惚查詢,注重恍惚查詢的字段不會主動加上%關頭字的,需要在查詢語句上手動去拼接,查詢前提的寫法也需要注重。
別的,也撐持原生的sql查詢,只需要設置nativeQuery = true即可。nativeQuery 是不撐持直接傳Sort參數進行排序的,我們直接在sql中利用order by進行排序,恍惚查詢中%的拼接還可以利用concat關頭字。
@Query注解在JPQL的環境下,可以利用PageRequest或者Sort參數,排序的字段需要和Entity實體類中的字段名稱相匹配。利用Page對象進行領受的時辰,參數直接傳Pageable即可。
對原生sql的分支撐持不太好用,注重鄙人圖中#pageable#是必需的,查詢和計數count要分隔寫,別離寫兩條sql語句,利用起來比力麻煩,不太建議這么做,會讓領受代碼的人很難看懂,這種環境下就可以考慮將成果查出背工動分頁了。
@Param注解的利用,一般環境下方式的傳參是經由過程挨次綁心猿意馬的體例進行的,傳參時很輕易弄錯參數的位置,利用@Param注解可以綁心猿意馬參數傳參時的具體名稱,很是適用。
最后再介紹一下@Modifying注解,該注解的感化是點竄和刪除,共同@Query注解,利用JPQL或者原生sql進行操作,代碼如下圖所示。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!