1
我有一個要求,以記錄分組數來計算分頁目的。例如:從QueryDSL獲取原生SQL JPA(JPAQuery或JPQLQuery)
select count(*) from (
select name, count(id) from customer
group by name
);
但是它無法通過QueryDSL實現由於JPA 的限制,其中JPQL不會允許從子查詢次數。
是否有可能從QueryDSL JPAQuery或JPQLQuery獲取本機SQL?我的計劃是通過EntityManager構造並執行select count原生SQL語句。
String subQueryNativeSQL = "..."; // native SQL from QueryDSL
Query q = em.createNativeQuery("select count(*) from (" + subQueryNativeSQL + ")");
long count = (long) q.getSingleResult();
中JPQL允許您在一個子查詢SELECT COUNT,按照JPA規範。 'simple_select_expression :: = single_valued_path_expression |標量表達式|聚合表達式| identify_variable' –
嗨Neil,可能你可以告訴我如何使用JPQL來構建我上面發佈的SQL語句? – kenn3th
也許你可以發佈你的ENTITIES以及你已經用JPQL嘗試過的東西。因爲JPQL顯然依賴於類/字段而你沒有發佈它們 –