您好,我对 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 数据以允许联接获取字段),但它仍然创建了额外的交叉联接。任何想法如何编写这样的查询?