我不知道是否有一個很好的解決方案來建立一個基於過濾器的JPQL查詢(我的查詢太「表現力」,我不能使用Criteria)。如何在參數動態時構建JPQL查詢?
喜歡的東西:
query = "Select from Ent"
if(parameter!=null){
query += "WHERE field=:parameter"
}
if(parameter2!=null) {
query += "WHERE field2=:parameter2"
}
,但我會寫到哪兩次!隨着參數數量的增加,casuistic會爆炸。因爲最終沒有或全部可能爲空。
任何提示基於正確的方式構建這些基於過濾器的查詢?
謝謝您!但有時我必須應用過濾器(當它不是空的時候),有時候不需要。如此命名的查詢並不能解決問題,原生查詢也可以...... – edutesoy
+1。標準API是動態構建查詢的途徑。這就是這個API的重點。 –
@edutesoy。,我不明白爲什麼解決方案不適合你的情況。 – NimChimpsky