Querydsl case when in where 子句

Querydsl case when in where clause

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

SELECT column1, column2 FROM viewWhatever WHERE CASE 当第 1 列 == 'b' 那么 account_location = ? 当第 1 列 =='m' 然后 location_area = ?

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

你真的需要 CASE 语句吗?

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

显然可以很容易地用 QueryDSL 表示。