Criteria API IN 与 ArrayList

Enz*_*ss 2 java spring criteria spring-mvc

Criteria可以在“IN”表达式中使用List吗?

例如:

List<Long> ids = new ArrayList<>();
        ids.add(1L);
        ids.add(2L);
        ids.add(3L);
Run Code Online (Sandbox Code Playgroud)

我想找到所有 id 为 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"));
Run Code Online (Sandbox Code Playgroud)

如何使用 List 代替这个?

小智 6

这将起作用,仅使用 ids 作为 '\xc3\xadn' 方法中的参数

\n
\n
List<Long> ids = new ArrayList<>();\n    ids.add(1L);\n    ids.add(2L);\n    ids.add(3L);\nCriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();\n    CriteriaQuery<User> userQuery = criteriaBuilder.createQuery(User.class);\n    Root<User> userRoot = userQuery.from(User.class);\n    userQuery.select(userRoot);\n    userQuery.where(userRoot.get("id").in(ids));\n
Run Code Online (Sandbox Code Playgroud)\n