尝试使用内部联接时获取查询语法错误

时间:2017-02-15 19:42:29

标签: hibernate hql

我在查询中得到一个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:expecting&#34; set&#34 ;, found&#39; inner&#39;在第1行第55列附近[更新com.websystique.springsecurity.model.Room作为r inner join com.websystique.springsecurity.model.Booking as b on r.roomId = b.room.roomId set r.roomAvailable = true其中b .checkOutDate&lt; NOW()]

查询在mysql workbench中工作正常...所以这里代码中是否可以实现?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您必须使用带有子选择而不是连接的查询。重写您的查询,它将起作用。