关于Hibernate3.2的count返回值的问题

一文带你完成ARMv8架构中的cache知识点 【摘要】 在最初开发ARM架构时,处理器的时钟速度和内存的访问速度大致相同。今天的处理器内核要复杂得多,其时钟速度可以快上几个数量级。但是,外部总线和内存设备的频率并没有扩大到同样的程度。有可能实现小块的片上SRAM,它可以以与内核相同的速度运行,但是与标准的DRAM块相比,这种RAM非常昂贵,因为后者的容量可以达到数千倍。在许多基于ARM处理器的系统中,访问外部存储器需要几十甚至几百个内核周期。 cache的技术背景 在最初开发ARM架构时,处理器的时钟速度和内存的访问速度大致相同。今天的处. 阅读详情
 我的代码如下
  @Override
  public int countAllSubject() {
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    session.beginTransaction();
    return ((Long) session.createQuery(
        "select count(*) from Post where idParent=0").iterate().next())
        .intValue();
  }
问题关键在那个
(Long)
在我的机器上运行正常,可在一些网友的机器上运行报错
java.lang.ClassCastException: java.lang.Integer

他们修改成(Integer)则运行正常

我的机器上如果改成Integer,则会报错。
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer


经排查,最终确定:

由于我使用的是Hibernate 3.2版本,经确认,这个版本已经把以前返回 Integer的改成了 Long,
因为JPA里面的返回值规定是Long, Hibernate为了兼容这个,所以修改了返回值。

如果你从Hibernate 3.0.x/3.1.x升级到最新的3.2版,一定要注意,3.2版的很多sql函数如count(), sum()的唯一返回值已经从Integer变为Long,如果不升级代码,会得到一个ClassCastException。

这个变化主要是为了兼容JPA,可以在hibernate.org的最新文档中找到说明。

Hibernate Team也提供了一个与原来兼容的解决方案:

  Configuration classicCfg = new Configuration();
  classicCfg.addSqlFunction( "count", new ClassicCountFunction());
  classicCfg.addSqlFunction( "avg", new ClassicAvgFunction());
  classicCfg.addSqlFunction( "sum", new ClassicSumFunction());
  SessionFactory classicSf = classicCfg.buildSessionFactory();










<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
无人机威胁检测(Hostile Drone Detection)——基于YOLOv10与UI界面的实现 Anti-UAV数据集由多种场景下的无人机视频与图片组成,包含无人机目标的多样化姿态、背景、光照变化,专门用于反无人机检测研究。YOLO(You Only Look Once)系列是当前流行的实时目标检测算法,具有速度快、精度高的特点。网络结构优化:更深更轻的主干网络,提升特征提取能力。检测头改进:多尺度特征融合,更好检测小型目标如无人机。训练技巧:使用自动混合精度训练(AMP)、数据增强、标签平滑等技术。 阅读详情

相关推荐

华为云Stack的学习(三)

LVS是四层负载均衡,建立在OSI模型的传输层之上,所以效率非常高。NAT模式的转发主要通过修改IP地址(位于OSI模型的第三层网络层)实现转发。DR模式的转发主要通过修改MAC地址(位于OSI模型的第二层数据链路层)实现转发。云服务框架中使用的DR模式。域名解析服务器分为管理侧(OM)和租户侧(Tenant)**DNS-OM:**作为云服务的本地DNS服务器,为云服务提供域名解析服务,并代理公网域名的解析。

Ciyaso的博客 8562

hibernate异常之--count查询异常

Lorg/hibernate/Query:hibernate版本问题 转载于:https://www.cnblogs.com/ssjifm/p/7611678.html

weixin_30432579的博客 254

别再为数据发愁了!盘点5个公开可用的医学图像数据集(含MRI/CT/PET合成任务)

本文详细介绍了5个高质量的公开医学图像数据集,涵盖MRI、CT和PET三大模态,适用于深度学习模型训练和医学图像合成任务。每个数据集均提供下载指南、预处理技巧和PyTorch加载示例,帮助研究人员快速获取和处理数据,解决医学AI开发中的数据瓶颈问题。

weixin_30689307的博客 524

hibernate count

最近开始学习和更多的使用hibernate了,yi

liyang_hawk的专栏 914

从星形到三角形:永磁同步电机FOC+SVPWM控制的相位偏移与扇区重构

本文深入探讨了将FOC+SVPWM控制方案从星形接法永磁同步电机移植到三角形接法时遇到的核心挑战。文章重点解析了由绕组连接方式差异导致的30度相位偏移问题,并详细阐述了如何为此重构扇区判断逻辑、矢量作用时间计算以及电流采样变换,为工程师提供了从理论到实践的完整移植指南。

ujm5678901的博客 545

无人车路径规划方法汇总

无人车路径规划方法汇总

weixin_44380244的博客 2561

关于hibernate执行select count( *) 出现java.lang.ClassCastException问题

代码如下: public int getTotal(String hql,int span) Session sess = sf.openSession(); //sf是Hibernate的session工厂类,它作为spring的受管bean,由spring负责注入 Query q = sess.createQuery(hql); List list = q.list();

cekong0704的专栏 1357

老N卡福音:GT1030/GTX1050在MacOS Ventura 13.2上的完整驱动指南(附实测截图)

本文详细介绍了如何在MacOS Ventura 13.2上通过OCLP工具链驱动GT1030和GTX1050等老款NVIDIA显卡,涵盖硬件兼容性验证、BIOS设置、OpenCore配置、驱动安装及性能测试全流程。实测数据显示,这些基于Pascal和Maxwell架构的显卡在当代MacOS系统中仍能发挥实用价值,为老N卡用户提供完整解决方案。

weixin_30832143的博客 633

hibernate HQL查询count(*)时与join、group by、distinct等连用报错

hibernate分页查询包装工具类时,count(*)和join、group by distinct等连用报错问题解决思路

独行侠梦的博客 3286

Multisim14.3主数据库访问冲突:Windows更新KB5065426卸载与系统兼容性修复指南

本文针对Multisim14.3在Windows更新KB5065426后出现的主数据库访问冲突问题,提供了详细的解决方案。通过卸载问题更新、修复系统兼容性及调整权限设置,帮助用户快速恢复元器件库的正常访问,确保电路仿真设计的连续性。

lstm7chronicler的博客 514

最优化方法与数学建模

在本篇博客中,我们将探讨最优化方法在数学建模中的应用。首先,我们将介绍几种常见的最优化方法,如梯度下降、牛顿法和遗传算法。接着,我们将详细阐述这些方法的原理和算法。最后,我们将通过一个数学建模案例,展示如何使用Matlab实现这些方法。本文旨在为大家提供一个清晰的思路,以便更好地理解和应用最优化方法。

YOLO 439

hibernate中关于对count(*)的查询

今天做项目中,有个统计在线人数的列子,需要从数据库中拿到状态为1的用户数量,所以开始使用count(*)这个函数,但是初学hibernate,犯了好多错误,特此记录下来。public int showCount() { String hql = "select count(*) from users where loginstatus=1"; int count =

wangdashu605435772的博客 4189

使用ArcGIS Pro进行土地利用分类的机器学习与深度学习

传统的土地利用分类方法通常依赖于手动解译和规则定义,但随着机器学习和深度学习的发展,我们现在可以利用这些技术来自动化和提高分类的精度。ArcGIS Pro是一种功能强大的GIS软件,它提供了丰富的工具和功能,可以支持土地利用分类的机器学习和深度学习。我们将首先讨论数据准备和预处理的步骤,然后介绍常用的机器学习和深度学习方法,并提供相应的源代码示例。这可以通过人工标注或半自动的方式完成。数据裁剪:根据研究区域的范围,裁剪遥感影像数据,以减少计算和存储的负担,并确保只包含感兴趣的土地利用区域。

code_program481的博客 2039

Hibernate3.2的count返回值的问题

 我的代码如下 @Override public int getTotal() { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); return ((Long) session.createQuery

只为那一份执着 1503

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

hibernate升级到3.2带来的count、sum等查询的兼容性问题

     今天调试程序,以前好好的hibernate查询,突然开始报ClassCastException,出现的语句都是出现在count查询数据条数的hql语句处,说类型为java.lang.Long。奇怪了啊,以前好好地啊。 上网一查,原来是hibernate从3.1升到3.2带来的兼容性问题。 具体说明:      从Hibernate 3.0.x/3.1.x升级到最新的3.2版之后,3.2版...

239

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Hibernate 3.0.x/3.1.x升级到最新的3.2版之后,sql函数如count(), sum()的唯一返回值已经从Integer变为Long...

从Hibernate 3.0.x/3.1.x升级到最新的3.2版之后,3.2版的很多sql函数如count(), sum()的唯一返回值已经从Integer变为Long,如果不升级代码,会得到一个ClassCastException: hibernate :java.lang.ClassCastException: java.lang.Long cannot be cast to java.la...

海阔天空 222

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Hibernate中的count聚合函数:是Integer还是Long?

最近在上课的时候发现一个问题,其实这个问题很早以前就发现了。不过以前也懒得去理它,最近想想找找原因吧。就是我用HQL查询数据库的时候,sj写如下语句: public int getCount() { Session session = super.getSession(); int count = (Integer) session.createQuery("select count(h

“夜光寒”的博客 460

hibernate java.lang.Long cannot be cast to java.lang.Integer

从Hibernate 3.0.x/3.1.x升级到最新的3.2版之后,3.2版的很多sql函数如count(), sum()的唯一返回值已经从Integer变为Long,如果不升级代码,会得到一个ClassCastException。  这个变化主要是为了兼容JPA,可以在hibernate.org的最新文档中找到说明。 解决方案: 1.hibernate尤其解决方案。当使用hibe

Li_huan_123的专栏 1505

hibernate :java.lang.ClassCastException: java.lang.Long cannot be cast to java.l

原因: 从Hibernate 3.0.x/3.1.x升级到最新的3.2版之后,3.2版的很多sql函数如count(), sum()的唯一返回值已经从Integer变为Long,如果不升级代码,会得到一个ClassCastException。 这个变化主要是为了兼容JPA,可以在hibernate.org的最新文档中找到说明。 解决方案: 1.hibernate尤其解决方案。当使用hibe...

373

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer

原因: 从Hibernate 3.0.x/3.1.x升级到最新的3.2版之后,3.2版的很多sql函数如count(), sum()的唯一返回值已经从Integer变为Long,如果不升级代码,会得到一个ClassCastException。  这个变化主要是为了兼容JPA,可以在hibernate.org的最新文档中找到说明。 解决方案: 1.hibernate尤其解决方案。

漂浮 1万+

关于Hibernate select count(*)返回值为Long还是Integer?

关于Hibernate select count(*)返回值为Long还是Integer? 我这里把代码贴一下:  Java code  @Override public int countAllSubject() { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); sessi

shen332401890的专栏 6602

关于在Hibernate里使用select count(*) 返回值的问题说明

因为JPA里面的返回值规定是Long, Hibernate为了兼容这个,所以修改了返回值。 如果你从Hibernate 3.0.x/3.1.x升级到最新的hibernate,一定要注意,3.2+版的很多sql函数如count(), sum()的唯一返回值已经从Integer变为Long,如果不升级代码,会得到一个ClassCastException。 这个变化主要是为了兼容JPA,可以

LowKeySk的专栏 5170

关于Hibernate查询count时的返回值类型

由于接触Hibernate较晚, 一直坚定不移的相信select count(*) 的返回值的类型的是Long. 一次很偶然的机会发现在一段分页函数里发现在使用select count(*)之后拿到的对象,居然先判断是Long类型还是Integer类型。心中大惊,总不会是在不同的数据库里它的表示不一样吧,不找出原因心难安。 在csdn上看到有人提出类似问题。其中提到 关于在Hibernat

Max Lee的专栏 4890

Hibernate select count(*)返回值类型Integer vs Long

COUNT 返回Long对象 MAX MIN 返回类型是跟所使用的字段类型有关 AVG 返回Double SUM 如使用字段是整形,返回Long(以前是返回BigInteger),如果是浮点类型那么就返回Double.由于接触Hibernate较晚, 一直坚定不移的相信select count() 的返回值的类型的是Long. 一次很偶然的机会发现在一段分页函数里发现在使用select cou

流离岁月的博客 7645

Hibernate使用count(*)取得表中记录总数(跨Hibernate3.x版本问题)

Java代码 /**     * @TODO:查询某一年度的所有计划数量     */   public int findCountByYear(String currYear) {        String hqlString = "select count(*) from WaterPlan as p where p.planYear ='"+currYear+...

乐在其中/Leo在其中 614

Hibernate(select count(*))

关于在Hibernate里使用select count(*) 返回值的问题说明 由于我使用的是Hibernate 3.2版本,经确认,这个版本已经把以前返回 Integer的改成了 Long, 因为JPA里面的返回值规定是Long, Hibernate为了兼容这个,所以修改了返回值。 如果你从Hibernate 3.0.x/3.1.x升级到最新的3.2版,一定要注意,3.2版的很多sql函数如co

Y_Ber的专栏 1951
上一篇: 跟老紫竹学Java-图书销售系统-管理界面:图书,入库,订单查看,历史数据等
下一篇: jsp:include 装载动态页面的问题。
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值