Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Criteria API IN with ArrayList

Can Criteria use List in "IN" expression?

For example:

List<Long> ids = new ArrayList<>();
        ids.add(1L);
        ids.add(2L);
        ids.add(3L);

I want to find all id with 1, 2, 3

CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
    CriteriaQuery<User> userQuery = criteriaBuilder.createQuery(User.class);
    Root<User> userRoot = userQuery.from(User.class);
    userQuery.select(userRoot);
    userQuery.where(userRoot.get("id").in("1","2","3"));

How to use List instead of this?

like image 375
EnzyWeiss Avatar asked Feb 14 '26 03:02

EnzyWeiss


1 Answers

This will work, using only ids as parameter in 'ín' method


List<Long> ids = new ArrayList<>();
    ids.add(1L);
    ids.add(2L);
    ids.add(3L);
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
    CriteriaQuery<User> userQuery = criteriaBuilder.createQuery(User.class);
    Root<User> userRoot = userQuery.from(User.class);
    userQuery.select(userRoot);
    userQuery.where(userRoot.get("id").in(ids));
like image 111
Vaibhav Singh Avatar answered Feb 15 '26 15:02

Vaibhav Singh



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!