0

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

助けてください。

4

1 に答える 1

1

使用する必要がありますquery.distinct(true)

于 2013-06-24T19:04:01.667 に答える