簡體   English   中英

CriteriaBuilder IN

[英]CriteriaBuilder IN

執行此代碼時發生錯誤:

public Iterable<T> findAllByIds(List<Integer> ids) {
    Path<Integer> idField = root.get("id");
    Predicate in = idField.in(ids);
    query.select(root);
    query.where(in);
    query.orderBy(builder.asc(idField));
    List<T> result = entityManager.createQuery(query).getResultList();
    return result;
}

在第2行中,引發以下異常:

原因:java.lang.IllegalArgumentException:不知道如何將值[[100,101]轉換為java.util.Arrays $ ArrayList]轉換為請求的類型[java.lang.Integer]

Hibernate版本5.2.11.Final,Java 8。

嘗試這個 :-

public Iterable<T> findAllByIds(List<Integer> ids) {
    Expression<Integer> exp = root.get("id");
    Predicate in = exp.in(ids);
    query.select(root);
    query.where(in);
    query.orderBy(builder.asc(root.get("id")));
    List<T> result = entityManager.createQuery(query).getResultList();
    return result;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM