JPA查詢:如何過濾條件為null的查詢條件


JPA查詢:如何過濾條件為null的查詢條件

問題:JPA不會自動過濾為null的查詢條件;

解決方案:

方案一:調用JPA之前判斷,寫多個查詢方法;

方案二:利用原生sql 加 if的方式實現參數為空不作為查詢條件;

例如:

@Query(value = "select * from user where is_identification = 1 and is_inter_identification = 1  and if(?1 !='',mobile=?1,1=1) and if(?2 !='',nick=?2,1=1)",nativeQuery = true)
List<User> findBySearch(String mobile,String nick);

注意:if(?1 !='',x1=?1,1=1) 代表傳入的參數X1如果不為""(Spring類型空是""而不是null)。

思考:傳入值null,需要用""判斷;如果是真的""空字符串,又如何判斷呢?

還有其他更好的解決方案,望大神留言,感激!!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM