2012-01-22 146 views
1

我正在尝试将以下SQL查询写为JPA查询。 SQL查询工作(MySQL数据库),但我不知道如何翻译它。我在第一个FROM后收到一个错误标记。这里也可能有其他错误,因为我无法找到关于如何在from部分执行子查询的任何指南,别名等。JPA中的子查询

SQL查询

SELECT tbl.* from (
    SELECT u.*, COUNT(u.id) AS question_count FROM app_user AS u 
     INNER JOIN question AS q ON u.id = q.user_id GROUP BY u.id 
) AS tbl ORDER BY tbl.question_count DESC LIMIT 10; 

JPA查询:

SELECT tbl FROM (SELECT u, COUNT(u.id) question_count FROM User u 
INNER JOIN u.questions q ON u.id = q.user_id GROUP BY u.id) tbl 
ORDER BY tbl.question_count LIMIT 10") 

回答

0

我现在不能有任何测试,但有些事沿着线:

final String queryStr = "SELECT u, COUNT(u.id) FROM User u, Questions q WHERE u.id = q.user_id GROUP BY u.id ORDER BY COUNT(u.id) DESC"; 
Query query = em().createQuery(queryStr); 
query.setMaxResults(10); 
List<Object[]> results = query.getResultList(); //Index [0] will contain the User-object, [1] will contain Long with result of COUNT(u.id)