2016-03-31 10 views
0

ich eine SQL-Abfrage haben, die dies funktioniert, ist:Hibernate JOIN Dot Knoten ohne linken seitige

select x.*,s.* from ID_LOOKUP x JOIN SOURCE_DATA s ON x.IDENTIFIER = s.SOURCE_PRIMARY_IDENTIFIER; 

dies funktioniert wie erwartet, aber wenn ich das gleiche tun in Hibernate versuchen bekomme ich eine Fehlermeldung,

java.lang.IllegalStateException: DOT node with no left-hand-side! 

Mein hibernate-Code ist als

Query q = session.createQuery("select x,s from com.package.IdLookupHDO x JOIN com.package.SourceDataHDO s ON x.identifier = s.sourcePrimaryIdentifier"); 

folgt ich relativ neu bin in den Ruhezustand und kann nicht verstehen, warum thi s funktioniert nicht.

Antwort

1

Diese Abfrage muss für Sie arbeiten:

select x,s 
from com.package.IdLookupHDO x, com.package.SourceDataHDO s 
where x.identifier = s.sourcePrimaryIdentifier 

Auf jeden Fall wird es sinnvoll sein, dass Sie den Code von IdLookupHDO und SourceDataHDO Klassen schreiben. Wenn diese Entitäten irgendwie verwandt sind, kann die Abfrage sicher optimiert und verbessert werden.