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 方法。为什么当我使用 GetBananasByNamesQuery 对象时是 GetBananasByIdsQuery.getSQL?应用程序是否有可能在运行时“选择”错误的子类?还是有其他我看不到的问题?

4

1 回答 1

0

我怀疑count在预编译语句中使用了 SQL 函数并获得零或负参数。

这很可能是由于为某些参数设置了错误的值造成的,而在同一个 SQL 中也可能是错误的。

于 2013-02-12T11:34:15.093 回答