使用NamedQuery或Criteria API

时间:2013-12-08 00:59:30

标签: jpa criteria-api

我有一个复杂的查询,例如搜索员工的姓名,年龄,地址等 如果参数WHERE

,我想附加一个IS NOT NULL子句 例如

(伪代码):

if (age != null) // then append age to the where clause
    whereClause += whereClause + AND age = :age" 

我想在NamedQuery文件中使用XML,但NamedQuery不支持像myBatis那样的条件

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

对于这个简单的案例/条件,您可以使用NamedQuery解决问题:

SELECT e FROM Entity e WHERE (:age IS NULL) OR (:age IS NOT NULL and e.age=:age)

如果您想要更复杂的查询(例如,按列动态排序),我会使用Criteria API。