Usm*_*man 2 java sql postgresql hibernate
我在使用hibernate for postgres表时遇到了在java中执行以下查询的问题.
该查询用于使用内部联接从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:意外标记:ON第1行,第268行[SELECT journey.id,journey.operatingday,journey.linename,journey.scheduledeparture,journey.scheduledeparturestopname, traveldetail.stopname,journeydetail.latitude,journeydetail.longitude FROM de.db.journeyTracker.model.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]
在SQL窗格上执行时,Tis查询在postgres上100%正常工作.有人有任何想法吗?
关心乌斯曼
Hibernate查询是用Hibernate查询语言(HQL)编写的,而不是用本机SQL 编写的 .用HQL重写您的查询或使用 本机查询将SQL与Hibernate一起使用.
Hibernate是一个对象关系映射器.它不会只给你一个结果集.如果需要,请使用PgJDBC直接使用JDBC.
如果您希望将本机域对象作为查询结果,请使用Hibernate和HQL或通过本机查询映射.本机查询很简单,因为你必须明确地告诉Hibernate所有结果列如何映射到结果对象.