【发布时间】:2017-02-15 19:42:28
【问题描述】:
我的查询中出现 org.hibernate.hql.internal.ast.QuerySyntaxException
Query query = session.createQuery("update Room as r "
+ "inner join Booking as b "
+ "on r.roomId = b.room.roomId "
+ "set r.roomAvailable = true "
+ "where b.checkOutDate < NOW()");
完全错误:
org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是 java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:期待“设置”,在第 1 行第 55 列附近找到“内部”[将 com.websystique.springsecurity.model.Room 更新为 r 内部加入 com.websystique.springsecurity.model.Booking 作为 b on r.roomId = b.room.roomId set r.roomAvailable = true where b.checkOutDate
查询在 mysql 工作台中运行良好...所以这在代码中是否可能?
非常感谢任何帮助。
【问题讨论】:
-
查询在 mysql workbench 中运行良好:mysql workbench 执行 SQL 查询。 session.createQuery 需要一个 HQL 查询。这是两种不同的语言。
-
你需要使用createSqlQuery insted of createQuery
-
@mvlaicevich 谢谢哥们!
-
@john 不客气!