84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
人生最曼妙的风景,竟是内心的淡定与从容!
楼主写的应该是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 ...
。