我有一个复杂的查询,例如搜索员工的姓名,年龄,地址等
如果参数WHERE
。
IS NOT NULL
子句
例如(伪代码):
if (age != null) // then append age to the where clause
whereClause += whereClause + AND age = :age"
我想在NamedQuery
文件中使用XML
,但NamedQuery
不支持像myBatis那样的条件
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
对于这个简单的案例/条件,您可以使用NamedQuery解决问题:
SELECT e FROM Entity e WHERE (:age IS NULL) OR (:age IS NOT NULL and e.age=:age)
如果您想要更复杂的查询(例如,按列动态排序),我会使用Criteria API。