2

postgres テーブルに hibernate を使用して Java で次のクエリを実行するという問題に直面しています。

クエリは、内部結合を使用して 3 つのテーブルからデータを取得するように構成されています。

クエリ:

QryJourney = "Journey.id、journey.operatingday、journey.linename、journey.scheduledeparture、journey.scheduledeparturestopname、journeydetail.stopname、journeydetail.latitude、journeydetail.longitude を選択してください。ジャーニーの詳細 ON ジャーニーの詳細.journeydetails_id = ジャーニーの詳細.id WHERE ジャーニー.id = '155815228' オーダー BY ジャーニーの詳細.スケジュール到着";

実行するとすぐに、次の例外が発生しました。

例外 :

スレッド "メイン" org.hibernate.hql.internal.ast.QuerySyntaxException での例外: 予期しないトークン: 行 1、列 268 付近でオン [SELECT course.id、journey.operatingday、journey.linename、journey.scheduledeparture、journey.scheduledeparturestopname、 jourdetail.stopname、journeydetail.latitude、journeydetail.longitude から de.db.journeyTracker.model.journey を残して、journey_journeydetail に参加してください。 ' ORDER BY tourdetail.schedulearrival]

このクエリは、SQL ペインで実行している間、postgres で 100% 正常に動作します。誰かアイデアがありますか?

よろしくウスマン

4

1 に答える 1

5

Hibernate クエリは 、ネイティブ SQL ではなくHibernate Query Language (HQL)で記述されています。HQL でクエリを言い換えるか、 ネイティブ クエリを使用して Hibernate で SQL を使用します。

Hibernate はオブジェクト リレーショナル マッパーです。結果セットを提供するだけではありません。それが必要な場合は、 PgJDBCを使用してJDBCを直接使用してください。

クエリ結果としてネイティブ ドメイン オブジェクトが必要な場合は、Hibernate を HQL で使用するか、ネイティブ クエリ マッピングを介して使用します。すべての結果列が結果オブジェクトにどのようにマップされるかを Hibernate に明示的に伝える必要があるため、ネイティブ クエリは面倒です。

于 2012-07-21T13:59:48.510 に答える