【问题标题】:DbUnit-query returning data of type BigIntegerDbUnit-query 返回 BigInteger 类型的数据
【发布时间】:2012-02-13 04:56:50
【问题描述】:

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

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

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

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

提前致谢。

【问题讨论】:

    标签: dbunit


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢...它很有帮助...之前我认为它的 dbunit 但后来意识到它是 h2 db 这是根本原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多