Jpa 使用NamedQuery或Criteria API
我有一个复杂的查询,例如用姓名、年龄、地址等搜索员工 如果参数Jpa 使用NamedQuery或Criteria API,jpa,criteria-api,Jpa,Criteria Api,我有一个复杂的查询,例如用姓名、年龄、地址等搜索员工 如果参数不为NULL,我想附加一个WHERE子句 例如(伪代码): 我想在XML文件中使用NamedQuery,但是NamedQuery不支持条件where-like-myBatis 有人能帮我解决这个问题吗 对于这个简单的情况/条件,您可以使用NamedQuery解决问题: SELECT e FROM Entity e WHERE (:age IS NULL) OR (:age IS NOT NULL and e.age=:age) 如果
不为NULL
,我想附加一个WHERE
子句
例如(伪代码):
我想在XML
文件中使用NamedQuery
,但是NamedQuery
不支持条件where-like-myBatis
有人能帮我解决这个问题吗 对于这个简单的情况/条件,您可以使用NamedQuery解决问题:
SELECT e FROM Entity e WHERE (:age IS NULL) OR (:age IS NOT NULL and e.age=:age)
如果您想要更复杂的查询(例如,按列动态排序),我会使用Criteria API。答案在您问题的标题中:使用Criteria API。
SELECT e FROM Entity e WHERE (:age IS NULL) OR (:age IS NOT NULL and e.age=:age)