Java 在JPQL查询中使用数组

Java 在JPQL查询中使用数组,java,hibernate,jpa,jpql,Java,Hibernate,Jpa,Jpql,如何在JPQL查询中使用数组列表?我想要这样的东西: 我要通过这个 private static final String[] MASKS = {"30109", "30111"}; 进入 读取它似乎是可能的,但您的数组必须是一个集合,可能是这样的: public List<Account> findAccount(String[] Masks){ StringBuilder sb = new StringBuilder("from AccountTable a where

如何在JPQL查询中使用数组列表?我想要这样的东西: 我要通过这个

private static final String[] MASKS = {"30109", "30111"};
进入

读取它似乎是可能的,但您的数组必须是一个集合,可能是这样的:

public List<Account> findAccount(String[] Masks){
    StringBuilder sb = new StringBuilder("from AccountTable a where SUBSTRING(a.Account,1,5) in :Masks ");
    Query q = em.createQuery(sb.toString(), AccountTable.class)
                .setParameter("Masks", Arrays.asList(MASKS));
}

我会帮你的。

正是我需要的。谢谢
Encountered array-valued parameter binding, but was expecting [java.lang.String (n/a)]; nested exception is java.lang.IllegalArgumentException: Encountered array-valued parameter binding, but was expecting [java.lang.String (n/a)]
public List<Account> findAccount(String[] Masks){
    StringBuilder sb = new StringBuilder("from AccountTable a where SUBSTRING(a.Account,1,5) in :Masks ");
    Query q = em.createQuery(sb.toString(), AccountTable.class)
                .setParameter("Masks", Arrays.asList(MASKS));
}