0

複数の結合を条件にすることはできますか?

final CriteriaBuilder builder = entityManager.getCriteriaBuilder();

CriteriaQuery<Game> query = builder.createQuery(Game.class);

final Root<Game> game = query.from(Game.class);
final ListJoin<Game, Store> store = game.join(Game_.stores);
final ListJoin<Game, Category> category = game.join(Game_.categories);

2 番目の結合 (カテゴリ) では、述語がなくても結果が異なります。

このコードの何が問題になっていますか?

4

1 に答える 1

1

結合はデフォルトで内部結合です。したがって、クエリは少なくとも 1 つのカテゴリを持つゲームのみを選択します。左結合にすると、すべてのゲームが選択されます (カテゴリがないものも含む)。

于 2012-06-27T08:02:35.463 に答える