我不知道是否有一个很好的解决方案来建立一个基于过滤器的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