DbUnit-查询返回 BigInteger 类型的数据

发布于 2025-01-05 02:48:09 字数 237 浏览 0 评论 0原文

我是 DbUnit 的新手,在运行集成测试时遇到以下问题。

我正在使用内存 h2 数据库并根据我的要求创建了表。

在运行返回客户 Ids 计数的特定查询时,我收到类转换异常,因为使用 DbUnit (对于此“计数”)运行返回的结果集是 BigInteger 类型,而我的数据 bean 属性以及测试表列类型是“int”。

请告诉我为什么我会得到这个 BigInteger 类型的结果?

提前致谢。

I am new to DbUnit and am facing the below issue while running my integration test.

I am using in memory h2 database and have created the tables as per my requirement.

While running a specific query which returns me count of customer Ids , I get a class cast exception as the resultset returned by running with DbUnit (for this "count") is of type BigInteger whereas my data bean property as well as the test table column type is "int".

Please let me know why I am getting this BigInteger type in result?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心不设防 2025-01-12 02:48:09

返回的列是一个表达式,即 count(x),而不是列本身 (x)。有时,列上的函数结果可能会导致类型提升。来自 http://hsqldb.org/doc/2.0/guide/guide.html 在“整体类型”下:

表达式中中间整数值的大小没有内置限制。因此,您应该检查 ResultSet 列的类型并选择适当的 getXXXX() 方法来检索它。或者,您可以使用 getObject() 方法,然后将结果转换为 java.lang.Number 并在结果上使用 intValue() 或 longValue() 方法。

The returned column is an expression, i.e. count(x), not the column itself (x). Sometimes, the result of a function on a column can result in type promotion. From http://hsqldb.org/doc/2.0/guide/guide.html under "Integral Types":

There is no built-in limit on the size of intermediate integral values in expressions. As a result, you should check for the type of the ResultSet column and choose an appropriate getXXXX() method to retrieve it. Alternatively, you can use the getObject() method, then cast the result to java.lang.Number and use the intValue() or longValue() methods on the result.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文