【问题标题】:JPA/Hibernate Criteria API JOINJPA/Hibernate Criteria API JOIN
【发布时间】:2013-06-21 09:28:32
【问题描述】:

我在加入 CriteriaAPI 时遇到问题。
我想获得具有唯一 Forma 实体的结果,但目前我得到多个实体(它们的数量等于 Gniazdo 实体的数量)。

这是我的代码:

    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<Forma> query = cb.createQuery(Forma.class);
    Root<Forma> root = query.from(Forma.class);

    Join<Forma, Gniazdo> socketJoin = root.join("gniazda", JoinType.INNER);

    List<Predicate> predicates = new ArrayList<Predicate>();

    predicates.add(root.get("dataUsuniecia").isNull());
    predicates.add(socketJoin.get("dataUsuniecia").isNull());

    Predicate[] conditions = predicates.toArray(new Predicate[predicates.size()]);
    query.where(cb.and(conditions));

    List<Forma> queryResult = em.createQuery(query).getResultList();

请帮忙。

【问题讨论】:

    标签: java hibernate jpa criteria-api predicate


    【解决方案1】:

    你需要使用query.distinct(true)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 1970-01-01
      • 2017-03-15
      • 2011-01-13
      相关资源
      最近更新 更多