gpt4 book ai didi

java - 使用 Projections.rowCount() 的 Hibernate 标准查询会导致数字溢出

转载 作者:行者123 更新时间:2023-12-01 05:45:41 25 4
gpt4 key购买 nike

我使用的是 Oracle 11g R2。我有一个包含 91 亿行的表。当我尝试使用 .list() 运行包含 Projections.rowCount() (我需要执行此操作以获取表中的行数)的条件查询时> 或 .uniqueResult(),我收到数字溢出异常。

堆栈跟踪的相关部分:

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 来满足您的结果。

关于java - 使用 Projections.rowCount() 的 Hibernate 标准查询会导致数字溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5970536/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com