簡體   English   中英

使用Projections.rowCount()進行休眠條件查詢會導致數值溢出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM