解決Querydsl在項目中遇到的問題
項目整體環境介紹
開發工具: idea 2019.3.1 旗艦破解版
構建工具: maven 3.9
java環境: 1.8
SpringBoot:2.2.1
數據庫: musql 5.7
ORM: JPA,跟隨SpringBoot版本
Querydsl: 4.2.1
Querydsl 用法
使用了Querydsl之後發現遇到問題時,解決的方法很少,且官網有bug更新也不及時,例如使用group having語法時,分頁會導致報錯,2017年就已經發到git issue上了,一直到現在還沒解決,在開發項目時,只能一點點探索,在這做個筆記,也希望能幫助遇到類似問題的小夥伴!如何將querydsl引入項目,再次不做介紹,自己搜一下就行.
Order by中的小技巧
問題描述 :
在使用order by進行排序時,字段默認值爲null,null值在數據庫中值時最小的,在使用orderBy時,asc所有的null值都在最前面,相反則在後面,這時我們想控制null得順序
解決辦法:
使用mysql語法時,我們可以使用 if 語法加個隱藏排序字段,使用querydsl可以直接在orderBy(user.age.asc().nullsFirst())
或者orderBy(user.age.asc().nullsLast())
來控制null是在前面和後面的問題。