鉴于数据库关系:
sport-club table
================
id
...
player
======
id
sport-club-id (reference sport-club)
first-name
...
我希望找到所有名为“John”的体育俱乐部。
我写了以下JPA:
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<SportClub> query = cb.createQuery(SportClub.class);
Root<SportClub> sportClub = query.from(SportClub.class);
Join<Player> player = sportClub.join(Player_.sportClub);
query.where(cb.equal(player.get(Player_.firstName), "John"));
然而,由于加入,每个俱乐部的每个名叫约翰的球员都会返回一次体育俱乐部。我怎样才能让Criteria为每位球员返回一次俱乐部?
答案 0 :(得分:0)
这比我想象的要简单得多。我只需添加:
query.distinct(true);
我花了几个小时毫无结果地尝试按照我的意愿进行加入。