84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
人生最曼妙的风景,竟是内心的淡定与从容!
楼主写的应该是hibernate的hql语句的问题:
hibernate
SELECT r.Id FROM A r WHERE r.Status = :edcbatchStatus
这个hql执行后应该是取出的id的类型集合。根据报错信息,结果类型为List<String>,在这里,强转类型为List<A>就会抛出异常了。有下面的解决方法:
id
List<String>
List<A>
如果只是想得到id的集合而已,则修改一下强制转化的类型
List<String> agencies = (List<String>)query.getResultList();
如果想获取整个对象,则要修改一下hql语句
SELECT * FROM A r WHERE r.Status = :edcbatchStatus
虽然我对 Spring 不熟,也好久没写 Java 了,但是从这个代码里可以看出来一点问题
从错误消息来说,是在将 String 转换为 A 类型的时候出问题了,代码里就一句话在转换:
List<A> agencies = (List<A>)query.getResultList();
那可能是 getResultList() 本身取得的是一个 List<String>。从 SQL 来看,select r.Id,那这个猜是合理的。
getResultList()
select r.Id
所以要么把返回值改为 List<String>,要么在 SQL 里取得整个对象(还会有一些映射啊什么的,只能假设你已经配置好了),比如 select r.* from ...。
select r.* from ...
楼主写的应该是
hibernate
的hql语句的问题:这个hql执行后应该是取出的
id
的类型集合。根据报错信息,结果类型为List<String>
,在这里,强转类型为List<A>
就会抛出异常了。有下面的解决方法:如果只是想得到id的集合而已,则修改一下强制转化的类型
如果想获取整个对象,则要修改一下hql语句
虽然我对 Spring 不熟,也好久没写 Java 了,但是从这个代码里可以看出来一点问题
从错误消息来说,是在将 String 转换为 A 类型的时候出问题了,代码里就一句话在转换:
那可能是
getResultList()
本身取得的是一个List<String>
。从 SQL 来看,select r.Id
,那这个猜是合理的。所以要么把返回值改为
List<String>
,要么在 SQL 里取得整个对象(还会有一些映射啊什么的,只能假设你已经配置好了),比如select r.* from ...
。