在java中使用hibernate for postgres表执行以下查询时遇到了问题。
这个查询是使用内部连接从3个表中检索数据的。
查询:
QryJourney=“选择journey.id、journey.operatingday、journey.linename、journey.scheduleDepartment、journey.scheduledeparturestopname、journeydetail.stopname、journeydetail.latitude,journeydetail.longitude FROM journey left join journey\u journeydetail ON journey.id=journeydetail.journey\u id left join journeydetail ON journey.journeydetails\u id=journeydetail.id其中journey.id='155815228'按journeydetail.schedulearrival排序”;
一旦执行,就会发生以下异常。
例外情况:
线程“main”org.hibernate.hql.internal.ast.QuerySyntaxException中的异常:意外标记:位于第1行第268列[选择journey.id、journey.operatingday、journey.linename、journey.scheduleDepartment、journey.scheduledeparturestopname、journeydetail.stopname、journeydetail.latitude,来自de.db.journeyTracker.model.journey left join journey\u journeydetail ON journey.id=journey\u journeydetail.journeydetails=journeydetail.id WHERE journey.id='155815228'journeydetail.schedulearrival的订单]
在postgres的SQL面板上执行时,Tis query在postgres上可以100%正常工作。
有人知道吗?
当做
乌斯曼
最佳答案
Hibernate查询是用Hibernate Query Language (HQL)编写的,而不是用原生SQL。在HQL中重新表述您的查询,或者使用native query将SQL与Hibernate一起使用。
Hibernate是一个对象关系映射器。它不会给你一个结果集。如果需要,直接使用JDBC,使用PgJDBC。
如果希望将本机域对象用作查询结果,请将Hibernate与HQL一起使用或通过本机查询映射使用。本机查询更加烦躁,因为您必须显式地告诉Hibernate所有结果列如何映射到您的结果对象。