2

我面临在 java 中使用 hibernate 对 postgres 表执行以下查询的问题。

该查询用于使用内部联接从 3 个表中检索数据。

询问 :

QryJourney = "SELECT Journey.id, Journey.operatingday, Journey.linename, Journey.scheduledeparture, Journey.scheduledeparturestopname, Journeydetail.stopname, Journeydetail.latitude, Journeydetail.longitude FROM Journey left join Journey_journeydetail ON Journey.id = Journey_journeydetail.journey_id left JOIN Journeydetail ON Journey_journeydetail.journeydetails_id = Journeydetail.id WHERE Journey.id = '155815228' ORDER BY Journeydetail.schedulearrival";

一旦执行,就会发生以下异常。

例外 :

线程“main” org.hibernate.hql.internal.ast.QuerySyntaxException 中的异常:意外令牌:在第 1 行,第 268 列附近打开 [SELECT Journey.id,journey.operatingday,journey.linename,journey.scheduledeparture,journey.scheduledeparturestopname, Journeydetail.stopname ,journeydetail.latitude,journeydetail.longitude FROM de.db.journeyTracker.model.journey 左加入journey_journeydetail ON Journey.id = Journey_journeydetail.journey_id 左加入journeydetail ON Journey_journeydetail.journeydetails_id =journeydetail.id WHEREjourney.id ='155815228 ' ORDER BY traveldetail.schedulearrival]

Tis 查询在其 SQL 窗格上执行时在 postgres 上 100% 正常工作。有人有什么想法吗?

问候乌斯曼

4

1 回答 1

5

Hibernate 查询是用 Hibernate Query Language (HQL)而非原生 SQL 编写的。在 HQL 中重新表述您的查询或使用 本机查询将 SQL 与 Hibernate 结合使用。

Hibernate 是一个对象关系映射器。它不仅会给你一个结果集。如果需要,请直接使用JDBC,使用PgJDBC

如果您希望本地域对象作为查询结果,请使用 Hibernate 和 HQL 或通过本地查询映射。原生查询更复杂,因为您必须明确告诉 Hibernate 所有结果列如何映射到您的结果对象。

于 2012-07-21T13:59:48.510 回答