![](/img/trans.png)
[英]criteria.setProjection(Projections.rowCount()) returns empty list
[英]Hibernate criteria query using Projections.rowCount() causes a numeric overflow
我正在使用Oracle 11g R2。 我的表有91億行。 當我嘗試使用.list()
或.uniqueResult()
運行包含Projections.rowCount()
(需要獲取表中的行數Projections.rowCount()
的條件查詢時,出現了Numeric Overflow異常。
堆棧跟蹤的相關部分:
java.sql.SQLException: Numeric Overflow
oracle.jdbc.driver.NumberCommonAcessor?throwOverFlow
oracle.jdbc.driver.NumberCommonAcessor?getInt
oracle.jdbc.driver.OracleResultSetImpl?getInt
oracle.jdbc.driver.OracleResultSet?getInt
org.hibernate.type.IntegerType?get <---------------- oops.
org.hibernate.type.NullableType?nullSafeGet
org.hibernate.type.NullableType?nullSafeGet
org.hibernate.loader.criteria.CriteriaLoader?getResultColumnOrRow
org.hibernate.loader.Loader.getRowFromResultSet
org.hibernate.loader.Loader.doQuery
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections
org.hibernate.loader.Loader.doList
org.hibernate.loader.Loader.listIgnoreQueryCache
org.hibernate.loader.Loader.list
org.hibernate.loader.criteria.CriteriaLoader?list
org.hibernate.impl.SessionImpl?.list
org.hibernate.impl.CriteriaImpl?.list
mypackage.myclass.GetRowCount
Hibernate決定使用Integer來存儲結果,而不管表的大小如何。 我該如何忽略這種行為?
使用SQLProjection ,其返回Type
足夠大以適合您的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.