JPQL:如何在条件

时间:2016-12-21 15:56:41

标签: criteria jpql

我正在努力应对JPQL动态条件。我尝试搜索相同的语法但coluldn找不到。

在我的情况下,如果用户传递name参数,那么select查询应该是

从用户中选择*,其中name =' sanjay'

如果用户没有传递name参数,那么select query应该是

select * from user

以下是我的jpql查询格式,在未传递name参数时失败。

entity_manager.createQuery("select u from user u where u.name = :name").setParameter("name",params[:name]).getResultList()

如何更新上面的JPQL查询以支持这两种情况,即传递name参数和未传递name参数时?

1 个答案:

答案 0 :(得分:0)

这在JPQL中是不可能的。你甚至不能做像

这样的事情
createQuery("select u from user u where u.name = :name OR :name IS NULL")

这是不可能的。那么简单。使用两个查询或使用 Criteria API