HQL - 基于列的条件 WHERE 子句
HQL - conditional WHERE clause based on column
我是 HQL
的新手,我正在尝试将 WHERE
子句添加到我的 hql 查询中,以便仅在其中一列具有特定条件时应用过滤器价值。我已经阅读了有关 CASE WHEN
语句的信息,并且我正在尝试使用它,但显然我做错了,因为我在查询中遇到了语法错误。
我试过的是:
FROM myClass WHERE CASE WHEN col1 = :val1 THEN dtIns >= :dt1 ELSE true END
理想情况下,我想做的是仅当 col1
具有特定值时才应用过滤器 dtIns >= :dt1
,否则我不想应用任何过滤器。
服务器响应:
QuerySyntaxException: unexpected token: >=
谁能告诉我我做错了什么?
在你的情况下最好这样写查询:
FROM myClass WHERE col1 != :val1 OR dtIns >= :dt1
是否解决了您的问题?
我是 HQL
的新手,我正在尝试将 WHERE
子句添加到我的 hql 查询中,以便仅在其中一列具有特定条件时应用过滤器价值。我已经阅读了有关 CASE WHEN
语句的信息,并且我正在尝试使用它,但显然我做错了,因为我在查询中遇到了语法错误。
我试过的是:
FROM myClass WHERE CASE WHEN col1 = :val1 THEN dtIns >= :dt1 ELSE true END
理想情况下,我想做的是仅当 col1
具有特定值时才应用过滤器 dtIns >= :dt1
,否则我不想应用任何过滤器。
服务器响应:
QuerySyntaxException: unexpected token: >=
谁能告诉我我做错了什么?
在你的情况下最好这样写查询:
FROM myClass WHERE col1 != :val1 OR dtIns >= :dt1
是否解决了您的问题?