今天调试程序,以前好好的hibernate查询,突然开始报ClassCastException,出现的语句都是出现在count查询数据条数的hql语句处,说类型为java.lang.Long。奇怪了啊,以前好好地啊。
上网一查,原来是hibernate从3.1升到3.2带来的兼容性问题。
具体说明:
从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();
或
int count = ((Integer)q.uniqueResult()).intValue();
改成 int count = ((Number)q.uniqueResult()).intValue(); 这样就可以两个版本同时兼容.
分享到:
相关推荐
NULL 博文链接:https://yongtree.iteye.com/blog/272293
Hibernate 3.6系列是3.x版本线中的长期支持(LTS)版本,带来了更多的稳定性和兼容性。3.6.10修复了大量的bug,并引入了对Java EE 6的兼容性,包括对JSR-303(Bean Validation)的支持,使得对象验证更加方便。此外...
Hibernate 参考文档 3.2 初学Hibernate必备文档!
以上只是《Hibernate 3.2 官方中文参考手册》中的一部分内容,实际文档中还包括了更多的细节,如查询优化、性能调优、 Hibenate与Spring的整合、复杂查询示例等。通过深入学习和实践,开发者能够充分利用Hibernate的...
在《Hibernate中文手册3.2》中,你将详细学习到如何配置Hibernate,创建实体类,定义映射文件或使用注解,以及如何执行CRUD操作。文档还会深入讲解事务管理、关联映射(如一对一、一对多、多对一、多对多)、继承...
这个“hibernate_3.2官方开发包”包含了源码、文档、示例等,可以帮助开发者深入了解Hibernate 3.2的每一个细节,无论是初学者还是经验丰富的开发者,都能从中受益。学习和掌握Hibernate,将极大地提升你在Java企业...
hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2hibernate3.2...
《深入剖析Hibernate 3.2源代码...通过深入学习Hibernate 3.2的源代码,开发者不仅可以了解其实现原理,还能在遇到问题时更快定位,进行定制化开发。同时,这也有助于理解ORM框架的工作方式,提升软件设计和开发能力。
Hibernate是一个开源的对象关系映射(ORM)框架,它允许...总的来说,“hibernate-3.2 jar包”是Java开发中一个重要的工具,它极大地简化了数据库操作,提高了开发效率,同时也为项目提供了良好的可维护性和可扩展性。
hibernate 3.2 hibernate 3.2 hibernate 3.2 hibernate 3.2 hibernate 3.2
- **配置项目:** 在Eclipse中,需将Hibernate库(包括`hibernate3.1/3.2.jar`)添加到项目的构建路径中,并设置相应的Hibernate配置文件。 - **代码生成:** 插件可以自动生成实体类、DAO层以及Service层代码,加速...
此外,3.2版本还优化了性能,增强了查询功能,比如HQL(Hibernate Query Language)和Criteria API,使得开发者可以更灵活、更高效地进行数据检索。 在提供的压缩包中,`hibernate3.jar`是Hibernate的核心库,包含...
在Hibernate-3.2中,配置文件通常为`hibernate.cfg.xml`,包含了数据库连接信息、实体类映射、缓存策略等设置。通过`Configuration`类加载配置,然后构建SessionFactory。 三、实体类与映射文件 Hibernate通过ORM...
此外,还会涉及到 Criteria的子查询、关联查询和分页查询等高级用法。 除了基本功能,Hibernate 3.2还引入了对JPA(Java Persistence API)的支持,这是Java EE 5和6标准的一部分,旨在为ORM提供统一的接口。文档会...
但可以肯定的是,这些内容通常会包括配置Hibernate环境、建立实体类与数据库表的映射关系、使用HQL或Criteria进行查询、会话管理和事务管理、二级缓存的使用、性能优化技巧等。 从给出的信息中,我们可以提取与...
Hibernate-3.2-API, CHM格式
Hibernate高官谈Hibernate3.2新特性
《Hibernate参考文档3.2》是Java开发领域中关于Hibernate框架的一个重要参考资料,它详细介绍了Hibernate 3.2版本的功能、用法以及API。Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者在Java应用程序...