如何解决如何正确编写查询以便我不会收到意外的令牌异常?
public static List<BigDecimal> getTripsRevenueByCompany(Company company) {
try (Session session = SessionFactoryUtil.getSessionFactory().openSession()) {
return session.createQuery("SELECT price FROM Trip RIGHT JOIN TripDriverVehicle ON TripDriverVehicle.trip_id = Trip.id WHERE Trip.company_id = " + company.getId() + ",TripDriverVehicle.is_done = 1",BigDecimal.class).list();
}
}
这是我想要获取的查询。
我不知道如何正确地写它。尝试了很多不同的东西。
java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token:,near line 1,column 132 [SELECT price FROM entity.Trip RIGHT JOIN entity.TripDriverVehicle ON TripDriverVehicle.trip_id = Trip.id WHERE Trip.company_id = 51,TripDriverVehicle.is_done = 1]
我想要做的是从表 price
中获取 Trip
次行程,但仅适用于 is_done=1
表中标记为 TripDriverVehicle
的行程.
解决方法
你有一个逗号而不是 and
:
... WHERE Trip.company_id = " + company.getId()
+ ",TripDriverVehicle.is_done = 1
应该是:
... WHERE Trip.company_id = " + company.getId()
+ " and TripDriverVehicle.is_done = 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。