2012-02-13 28 views
0

我是DbUnit的新手,在運行集成測試時遇到了以下問題。DbUnit查詢返回BigInteger類型的數據

我在內存中使用h2數據庫,並根據我的要求創建了表。

當運行一個特定的查詢返回客戶ID的計數時,我得到一個類轉換異常,因爲用DbUnit運行返回的結果集(對於這個「count」)是BigInteger類型,而我的數據bean屬性以及測試表列的類型是「int」。

請讓我知道爲什麼我得到這個BigInteger類型的結果?

在此先感謝。

回答

1

返回的列是一個表達式,即count(x),而不是列本身(x)。有時,列上函數的結果可能導致類型提升。從「積分類型」下的http://hsqldb.org/doc/2.0/guide/guide.html

表達式中的中間積分值的大小沒有內置限制。因此,您應該檢查ResultSet列的類型並選擇合適的getXXXX()方法來檢索它。或者,您可以使用getObject()方法,然後將結果轉換爲java.lang.Number,並在結果上使用intValue()或longValue()方法。

+0

謝謝...這是有益的...早些時候我認爲它的dbunit,但後來意識到它是h2 db這是根本原因。 – 2012-02-20 06:59:20