【问题标题】:JPA Criteria returning a single row from a join从连接返回单行的 JPA 标准
【发布时间】:2014-08-20 15:05:19
【问题描述】:

给定数据库关系:

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

但是,由于加入,这将为每个俱乐部中的每个名为 John 的玩家返回一次体育俱乐部。我怎样才能让 Criteria 为每个球员返回一次俱乐部?

【问题讨论】:

    标签: java jpa join criteria


    【解决方案1】:

    这比我想象的要简单得多。我只需要添加:

    query.distinct(true);
    

    我花了几个小时徒劳地试图让连接按我的意愿工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-19
      • 2016-05-23
      • 2017-03-13
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      • 2018-02-04
      相关资源
      最近更新 更多