JPA Criteria API多个集合连接

时间:2012-06-27 07:53:22

标签: jpa

多个连接可以成为条件吗?

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);

第二个连接(类别)使得结果不同,即使没有谓词也是如此。

这段代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

默认情况下,连接是内连接。因此查询将仅选择至少包含1个类别的游戏。将其设为左连接,它将选择所有游戏(即使是那些没有任何类别的游戏)。