2014-04-09 112 views
-1

我的SQL是查询春季储存库

SELECT formid 
    FROM (SELECT formid, COUNT(*) cc FROM formevalremarks 
       WHERE completed='Y' GROUP BY formid) 
WHERE (formid, cc) IN 
       (SELECT formid, COUNT(*) dd FROM formevalremarks GROUP BY formid) 

如何在春天回购它写在@Query ????


我试过..

@Query("select f.formId from (SELECT f.formId ,COUNT(*) f.cc FROM FormEvalRemarks f WHERE f.completed='Y' GROUP BY f.formId) where (f.formId ,f.cc) in (SELECT f.formId ,COUNT(*) f.dd FROM FormEvalRemarks f GROUP BY f.formId)")
List<Long> complForms()
;

它越来越... org.springframework.beans.factory.BeanCreationException

+1

你试过了什么? – Rembo

+0

通过启用'nativeQuery = true',您可以在'@Query(custome SQL)'中使用本机查询,但会松散数据库。 – Rembo

回答

0

我在早晨的例外,做正确的做法是。

@Query("select f.formId as formID from 
     (SELECT f.formId ,COUNT(*) f.cc FROM FormEvalRemarks f WHERE f.completed='Y' GROUP BY f.formId) where (f.formId ,f.cc) in (SELECT f.formId ,COUNT(*) f.dd FROM FormEvalRemarks f GROUP BY f.formId)" , native=true) 
    List<Long> methodToExecute(); 

如果这不起作用尝试使用。

@NamedNativeQuery(name="MyQuery", query="select f.formId as formID from (SELECT f.formId ,COUNT(*) f.cc FROM FormEvalRemarks f WHERE f.completed='Y' GROUP BY f.formId) where (f.formId ,f.cc) in (SELECT f.formId ,COUNT(*) f.dd FROM FormEvalRemarks f GROUP BY f.formId)", resultSetMapping = "MyMapper") 

@SqlResultSetMapping(name="MyMapper", 
    columns={ 
     @ColumnResult(name="formID") 
    } 
) 

@Query(name="MyQuery" , native=true) 
List<Object> methodToExecute();