查询dsl中的Muliticolumn in子句

时间:2013-07-18 23:59:45

标签: querydsl

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

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

谢谢, 斯瓦特

1 个答案:

答案 0 :(得分:0)

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

BooleanBuilder builder = new BooleanBuilder();
for (...) {
    builder.or(prop1.eq(a).and(prop2.eq(b));
}
query.where(builder);