使用带有本机查询的setMaxResults创建的错误sql查询

时间:2015-03-16 16:03:02

标签: mysql sql-server database hibernate jpa

我有这个代码,我在创建一个本机查询,在执行本机查询时,我使用的是setMaxResults方法。

List<?> resultList = (List<?>) getEntityManager(speedwingCustId, loggedInUserId).createNativeQuery(statement).setMaxResults(Integer.MAX_VALUE).getResultList();

这是我在上述代码之前的陈述:

( SELECT IQV.VERSION_ID AS VERSION_ID FROM ITEM_QUERY_VIEW IQV WHERE  AVAILABLE_VALUE_ID IN (15611 ) AND EQUIPMENT_AVAILABILITY_ID = 1 AND REGION_ID IN (5 ,  8 ,  10 ,  14 ,  21 ,  20 ,  23 ,  24 ,  26 ,  35 ,  33 ,  39 ,  45 ,  55 ,  54 ,  53 ,  52 ,  63 ,  62 ,  61 ,  68 ,  71 ,  64 ,  65 ,  76 ,  72 )  AND VEHICLE_TYPE_ID IN (1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7  )   GROUP BY VERSION_ID HAVING COUNT (DISTINCT(AVAILABLE_VALUE_ID)) = 1 ) 

执行时这是我的查询:

Hibernate:  ( SE TOP(?)LECT IQV.VERSION_ID AS VERSION_ID FROM ITEM_QUERY_VIEW IQV WHERE  AVAILABLE_VALUE_ID IN (15611 ) AND EQUIPMENT_AVAILABILITY_ID = 1 AND REGION_ID IN (5 ,  8 ,  10 ,  14 ,  21 ,  20 ,  23 ,  24 ,  26 ,  35 ,  33 ,  39 ,  45 ,  55 ,  54 ,  53 ,  52 ,  63 ,  62 ,  61 ,  68 ,  71 ,  64 ,  65 ,  76 ,  72 )  AND VEHICLE_TYPE_ID IN (1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7  )   GROUP BY VERSION_ID HAVING COUNT (DISTINCT(AVAILABLE_VALUE_ID)) = 1 ) 

我正在使用MSSQL服务器并使用JPA。

1 个答案:

答案 0 :(得分:0)

为什么要将Integer.MAX_VALUE传递给setMaxResults()?这没有意义。尝试删除它或传递有意义的数字,例如setMaxResults(30)。