2013-02-12 215 views
0

我收到以下錯誤堆棧當我運行我的應用程序:運行時錯誤 - 運行時錯誤的子類?

java.lang.IllegalArgumentException: count parameter must be greater than zero 
at myApplication.util.StatementUtil.expand(StatementUtil.java:83) 
at myApplication.GetBananasByIdsQuery.getSQL(GetBananasByIds.java:49) 
at myApplication.Query.executeQuery(Query.java:87) 
at myApplication.BananasServiceJDBCImpl.get(BananasServiceJDBCImpl.java:181) 
at myApplication.BananasResource.queryForBananas(BananasResource.java:127) 

這裏是BananasServiceJDBCImpl.get代碼的一部分()的誤差來自:

List<BananasDataReply> requestedBananas = new GetBananasByNamesQuery(names).executeQuery(); 

所以,我的問題不是錯誤本身,而是爲什麼我得到錯誤的地方。在我的應用程序中,Query被許多類擴展,如GetBananasByNamesQuery或GetBananasByIdsQuery,它們都擴展getSQL方法。爲什麼GetBananasByIdsQuery.getSQL在使用GetBananasByNamesQuery對象時?應用程序是否有可能在運行時「選擇」錯誤的子類?還是還有其他一些我看不到的問題?

+1

向我們展示您的GetBananasByNamesQuery類 – Jayamohan 2013-02-12 10:26:06

+1

'GetBananasByNamesQuery extends GetBananasByIdsQuery'應該解釋它。 – 2013-02-12 10:27:14

+0

如果你的GetBananasByNamesQuery不覆蓋getSQL(),這是可能的 – 2013-02-12 10:29:27

回答

0

我懷疑預編譯語句中使用了SQL函數count,並獲得了零或負參數。

這很可能是由於爲某些參數設置了錯誤的值而引起的,而可能在同一個SQL中也可能出錯。