在where子句中查询dsl案例

Posted

技术标签:

【中文标题】在where子句中查询dsl案例【英文标题】:Querydsl case when in where clause 【发布时间】:2016-10-07 14:10:51 【问题描述】:

我正在寻找关于 querydsl 上 where 子句中条件的用例的示例。

SELECT column1, column2 FROM viewWhatever WHERE CASE 当 column1 == 'b' THEN account_location = ? WHEN column1 =='m' THEN location_area = ?

我最近才开始使用 querydsl,我不知道如何在 querydsl 案例构建器表达式中表示上述查询。 我找到了在 select 子句中使用的示例,但在 where 子句中找不到太多使用的示例。

【问题讨论】:

那你没看官方文档? querydsl.com/static/querydsl/3.1.1/reference/html/… @AlanHay 用于选择子句`我正在寻找在 where 子句/谓词中使用的示例。 【参考方案1】:

您真的需要 CASE 语句吗?

SELECT 
   column1, column2 
FROM 
   viewWhatever 
WHERE 
   (column1 == 'b' AND account_location = ?)
OR
   (column1 =='m' AND location_area = ?)

显然可以在 QueryDSL 中轻松表示。

【讨论】:

感谢您的提示,几小时前我确实做了这个替代方案。

以上是关于在where子句中查询dsl案例的主要内容,如果未能解决你的问题,请参考以下文章

Oracle - where 子句中的案例

在 WHERE 子句中使用 OR 的慢速 JOIN 查询 - 缺少可能的索引?

016-elasticsearch-Query DSL-查询上下文,过滤上下文match_all

JOOQ - 在选择查询中选择计数

1. 安装Oracle,配置环境 2. 实现查询From子句 3. 实现查询where子句 4. 实现查询order by子句

Elasticsearch Query DSL概述与查询过滤上下文