2

我是查询 dsl 的新手,我需要从基于两列的表中获取记录我有一个名为 Employee 的表,并希望根据名字和姓氏获取记录。如果我想要所有带有名字的记录列表,那么我可以在查询中使用该列。如果我想批量选择名字和姓氏,那么我会使用如下查询 SELECT * FROM Employee tabb WHERE (tabb.firstname, tabb.lastname) IN ( (a,b), (a,c),(e ,d))

我想将上述查询转换为查询 dsl...?并运行它以获得结果。我没有在查询 dsl 中看到这样做的方法......有没有办法做到这一点......

谢谢, 斯瓦蒂

4

1 回答 1

0

Querydsl 不支持表达式中的多列,因此您需要通过链接或表达式来表达这一点

BooleanBuilder builder = new BooleanBuilder();
for (...) {
    builder.or(prop1.eq(a).and(prop2.eq(b));
}
query.where(builder);
于 2013-07-19T15:59:50.320 回答