Mr.*_*art 3 java hibernate ejb jpa jpql
我想知道是否有一个很好的解决方案来构建基于过滤器的 JPQL 查询(我的查询太“有表现力”,我不能使用 Criteria)。
就像是:
query = "Select from Ent"
if(parameter!=null){
query += "WHERE field=:parameter"
}
if(parameter2!=null) {
query += "WHERE field2=:parameter2"
}
Run Code Online (Sandbox Code Playgroud)
但我会写 WHERE 两次!!并且随着参数数量的增加,casuistic 会爆炸。因为最终没有或全部可能为空。
任何提示以正确的方式基于过滤器构建这些查询?
select * from Ent
where (field1 = :parameter1 or :parameter1 is null)
and (field2 = :parameter2 or :parameter2 is null)
Run Code Online (Sandbox Code Playgroud)