2016-03-31 40 views
0

我有一個SQL查詢,其工作原理是這樣的:休眠JOIN點節點沒有左手側

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

這個工作正常,但是當我嘗試做休眠同樣的事情,我得到一個錯誤說

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

我休眠代碼如下

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

我是比較新的休眠和想不通爲什麼THI s不起作用。

回答

1

此查詢必須爲你工作:

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

無論如何,這將是您發佈的IdLookupHDOSourceDataHDO類的代碼非常有用。如果這些實體有關係,則查詢可以確定地進行優化和改進。