Criteria 可以在“IN”表达式中使用 List 吗?
例如:
List<Long> ids = new ArrayList<>();
ids.add(1L);
ids.add(2L);
ids.add(3L);
我想找到所有带有 1, 2, 3 的 id
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"));
如何使用 List 而不是这个?
最佳答案
这将起作用,仅使用 id 作为“ín”方法中的参数
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));
关于java - 标准 API IN 与 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51583079/