我在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();


请帮忙。

最佳答案

您需要使用query.distinct(true)

关于java - JPA/hibernate 标准API加入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17282844/

10-10 18:51