2012-10-10 76 views
1

我試圖確保在hibernate 3.2.1中支持EJBQL功能,但是我的google-fu失敗了。 我所發現的是,嵌套查詢未在EJB 2.x的支持Hibernate 3.2.1和查詢中的EJBQL查詢

我可以把查詢這樣的查詢中:

select count(*) from 
    (select myField from myTable group by myField having sum(case.....) .......) 

回答

1

EBJQL不支持from子句中的子查詢(你可以在selectwhere中使用它們),因此無法執行該確切查詢。你可以嘗試重寫查詢,你的情況下面應該是等價的:

select count(distinct e.myField) from myEntity e group by e.myField having ... 

或者,只是使用createNativeQuery()和使用原來的查詢,而無需在HQL改寫它。這當然會打破可移植性。

提示:如果您使用Eclipse,請從http://www.jboss.org/tools或市場獲取Hibernate插件。它允許您直接從IDE編寫和執行查詢(請參閱Hibernate工具文檔中的query prototyping)。其他IDE也可以具有類似的功能。

+0

太棒了,應該這樣做。休眠插件也會非常方便。謝謝! – Robert