こんにちは、querydsl (+ hibernate 4.2.3 と postgresql) で少し行き詰まりました。一般的にはかなりうまく機能しますが、次のように構築された述語が1つあります。
QUser user = QUser.user;
....
predicate = and(predicate,
user.userType.in(userTypes)
.or(user.customer.userType.in(userTypes)));
問題は、ユーザーが常に顧客を持っているとは限らないことです。Querydsl は、顧客テーブルへのクロス結合を使用して SQL を生成します。ユーザーが顧客を持っていない場合、このクエリは、エントリが返されるべきにもかかわらず、ゼロ エントリを返します。この顧客は結合を残しました (結合フェッチ フィールドを許可するためにスプリング データを少し変更しました) が、それでも追加のクロス結合が作成されます。このようなクエリを作成する方法はありますか?