在 JPQL 查询中使用数组
using array in JPQL query
如何在 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",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)]
阅读 this site 似乎是可以的,但你的数组必须是 Collection
,可能是这样的:
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));
}
应该能帮到你。
如何在 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",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)]
阅读 this site 似乎是可以的,但你的数组必须是 Collection
,可能是这样的:
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));
}
应该能帮到你。