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 ...
。