spring - java.lang.String cannot be cast to rh.com.app.domain.A
黄舟
黄舟 2017-04-18 10:38:49
0
2
344
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(2)
黄舟

投稿者が書いたのは hibernate の HQL ステートメントであるはずです: hibernate的hql语句的问题:

SELECT r.Id FROM A r WHERE r.Status = :edcbatchStatus

这个hql执行后应该是取出的id的类型集合。根据报错信息,结果类型为List<String>,在这里,强转类型为List<A> リーリー

このHQLを実行すると、idの型コレクションが取り出されるはずです。エラー メッセージによると、結果の型は List<String> です。ここで、キャスト型が List<A> の場合、例外がスローされます。次の解決策があります:
  • IDのコレクションを取得したいだけの場合は、強制変換のタイプを変更してください
    リーリー
  • オブジェクト全体を取得したい場合は、HQLステートメントを変更する必要があります
🎜 リーリー
いいねを押す +0
伊谢尔伦

私は Spring に詳しくなく、長い間 Java を書いたこともありませんが、このコードからいくつかの問題がわかります

エラー メッセージから、文字列を型 A に変換するときに問題が発生しています。変換用のコードには 1 つの文のみがあります:

リーリー

それは、getResultList() 自体が List<String> を取得している可能性があります。 SQL の観点からは、select r.Id であるため、この推測は妥当です。 getResultList() 本身取得的是一个 List<String>。从 SQL 来看,select r.Id,那这个猜是合理的。

所以要么把返回值改为 List<String>,要么在 SQL 里取得整个对象(还会有一些映射啊什么的,只能假设你已经配置好了),比如 select r.* from ...

そのため、戻り値を List<String> に変更するか、SQL でオブジェクト全体を取得します (いくつかのマッピングなどもありますが、それを構成しているとしか考えられません)。 select r.* from ... として。 🎜
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!