我觉得自己像个小伙子试图把这个拿出来 -
我想知道以下jpa查询的正确语法,以便从数字列表中进行选择。 ?
List<Long> personIds = new ArrayList<Long>();
personIds.add(1L);
personIds.add(2L);
jpaTemplate.find("select count(*) from Person p where p.id in (?) ",personIds);
当我尝试时,我得到了
"java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Long"
答案 0 :(得分:0)
尝试在没有括号的JPQL中设置参数。像这样的东西:
List<Long> personIds = new ArrayList<Long>();
personIds.add(1L);
personIds.add(2L);
jpaTemplate.find("select count(*) from Person p where p.id in ?",personIds);
我认为这应该可以解决您的问题。
答案 1 :(得分:0)
我通过使用EntityManager修复它 -
Query q = jpaTemplate.getEntityManager().find("select count(*) from Person p where p.id in :personIds") ;
q.setParameter("personIds",personIds);
q.getResultSet();
答案 2 :(得分:0)
您的查询返回Long count
,并且您希望将该长项分配给列表