2017-02-15 2 views
0

ImAbfrage Syntaxfehler, wenn ich versuche Innen zu verwenden, verbinden

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()"); 

voller Fehler ein org.hibernate.hql.internal.ast.QuerySyntaxException in meiner Anfrage bekommen:

org.springframework.web. util.NestedServletException: Anforderungsverarbeitung fehlgeschlagen; verschachtelte Ausnahme ist java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: erwartet "set", gefunden "inner" in der Nähe von Zeile 1, Spalte 55 [update com.websbestique.springsecurity.model.Room as r inner beitreten com.websystique.springsecurity.model.Booking als b auf r.roomId = b.room.roomId gesetzt r.roomAvailable = true wo b.checkOutDate < NOW()]

die Abfrage in mySQL Workbench arbeitet gut. .. so ist das irgendwie hier im code möglich oder nicht?

Jede Hilfe sehr geschätzt.

+2

* Die Abfrage funktioniert in der mysql workbench *: mysql workbench führt SQL-Abfragen aus. session.createQuery erwartet eine HQL-Abfrage. Das sind zwei verschiedene Sprachen. –

+2

müssen Sie createSqlQuery von createQuery verwenden – mvlaicevich

+0

@mvlaicevich Thanks buddy! – john

Antwort

1

Sie müssen eine Abfrage mit einem Subselect anstelle eines Joins verwenden. Schreiben Sie Ihre Abfrage neu und es wird funktionieren.

Verwandte Themen