How to use IN clause in JPA query in Java?

Doruk :

I have this code below:

public Optional<KoKur> getExchangeRateFromList(final Integer code, List<KotukOdeme> paymentList){

    List<LocalDate> paymentDateList = null;
    for(KotukOdeme kotukOdeme : paymentList){
        paymentDateList.add(kotukOdeme.getOdemeTarihi());
    }

    CriteriaBuilder cb = entityManager.getCriteriaBuilder();
    CriteriaQuery<KoKur> query = cb.createQuery(KoKur.class);
    Root<KoKur> koKurRoot = query.from(KoKur.class);
    query.where(
            cb.and(
                    cb.equal(koKurRoot.get("dovizTip"), code)

            )

    );
    TypedQuery<KoKur> typedQuery = entityManager.createQuery(query);
    List<KoKur> koKurList = typedQuery.getResultList();

    return koKurList.isEmpty() ? Optional.empty() : Optional.of(koKurList.get(0));
}

I am collecting list of localdates in paymentDateList, I want to add these as IN clause in my query. So beside "code", also i want to add IN next to my AND clause. When I add like below IDE gives me error;

cb.in(koKurRoot.get("tarih"), paymentDateList) 

How can I do that ?

luboskrnac :

Use cb.in(koKurRoot.get("tarih")).value(paymentDateList)

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=158929&siteId=1