2013-02-12 96 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中也可能出错。