【发布时间】:2013-08-13 23:49:44
【问题描述】:
您好,我对 querydsl(+hibernate 4.2.3 和 postgresql)有点卡住了。通常它工作得很好,但是我有一个这样构建的谓词:
QUser user = QUser.user;
....
predicate = and(predicate,
user.userType.in(userTypes)
.or(user.customer.userType.in(userTypes)));
现在的问题是用户并不总是有客户。 Querydsl 生成与客户表交叉连接的 sql,当用户没有客户时,此查询返回零条目,即使应该返回这些条目。该客户已离开联接(稍微修改了 spring 数据以允许联接获取字段),但它仍然创建了额外的交叉联接。任何想法如何编写这样的查询?
【问题讨论】: