2
我在內存中使用hsqldb來執行JUnit測試,以測試數據訪問對象。HSQLDB:count(*)返回小數
在DAO,我使用JPA實體管理器,打開下面的原生SQL查詢:
SELECT COUNT(*) FROM AAA
的代碼如下所示:
final Query query = entityManager.createNativeQuery("SELECT COUNT(*) FROM AAA");
return (Integer) query.getSingleResult() == 0;
return語句讓我檢查我有一個計數等於0. 它在生產環境中正常工作(使用DB2)。
但是在我們的測試env中,hsqldb在內存中失敗,因爲查詢不返回整數或int,但返回BigDecimal
(轉換失敗)。
使用HsqlDB 2.3.0。 它在1.8版本的hsqldb之前工作正常。
你知道爲什麼會出現這個問題嗎?我怎樣才能讓count(*)
返回一個整數?
我希望儘可能讓產品代碼保持不變。因爲我已知道,我可以解決這個問題與SQL投,但是這不是我的觀點理想:
SELECT cast(COUNT(*) as int) FROM AAA