`

Hibernate/JPA常见异常分析与解决

 
阅读更多

1. ClassNotFoundException: org.hibernate.hql.ast.HqlToken

    (1)产生环境:SpringMVC3.0.5+com.springsource.org.hibernate-3.3.2.GA+SpringDM1.2.1

    (2)解决方法:

    方法1:在hibernateProperties中添加红色背景属性设置。

    <property name="hibernateProperties">
            <value>
                hibernate.query.factory_class=org.hibernate.hql.classic.ClassicQueryTranslatorFactory
                hibernate.dialect=org.hibernate.dialect.MySQLDialect
                hibernate.show_sql=true
                hibernate.format_sql=true
            </value>
    </property>

    方法2:在JDK目录jire/lib/ext目录下放置:com.springsource.antlr-2.7.7.jar,该方法在当前的环境下未测试

    成功!

    (3)异常原因:Hibernate3.0以上版本采用新的基于ANTLR的HQL/SQL查询翻译器,在Hibernate的配置文件中,

    hibernate.query.factory_class属性是用来选择查询翻译器的,网上有两中说法:
    指定Hibernate3.0以上的查询翻译器: (这种配置不支持批量更新语句以及中文作为查询条件)
    hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory
    指定Hibernate2.1以上的查询翻译器 : (支持中文作为查询条件但不支持批量更新)
    hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory

 

    在我的测试环境中,配置ASTQueryTranslatorFactory任然不能解决本异常,只能配置成:

    ClassicQueryTranslatorFactor;而在该情况下又不支持中文作为查询条件!

 

    ANTLR 是用纯 Java 语言编写出来的一个编译工具,它可生成 Java 语言或者是 C++ 的词法和语法分析器,并

    可产生语法分析树并对该树进行遍历。 ANTLR 由于是纯 Java 的,因此可以安装在任意平台上,但是需要 JDK

    的支持。

2. Hibernate支持中文作为查询条件

    (1) 产生环境:查询中文时  hql语句在生成的语句中把中文显示为乱码。

    (2) 解决方法:在hibernate配置文件中加入:

         <property name="hibernate.query.factory_class">
                    org.hibernate.hql.ast.ASTQueryTranslatorFactory

         </property>

         <property name="connection.useUnicode">true</property>
         <property name="connection.characterEncoding">UTF-8</property>

3.

分享到:
评论

相关推荐

    hibernate常见异常针对于jpa

    ### Hibernate常见异常及解决方案 #### 一、保存了一个父对象,但是它的关联对象没有保存到数据库中 在Hibernate中,当我们保存一个实体时,如果该实体与其他实体有关联关系(如一对多或多对一),那么可能遇到的...

    struts-2.2.1 spring-3.0.4 hibernate-3.6.0 JPA整合

    Struts 2.2.1、Spring 3.0.4、Hibernate 3.6.0 和 JPA 整合是Java开发中的常见技术栈,主要用于构建企业级Web应用程序。这个压缩包文件“struts-2.2.1 spring-3.0.4 hibernate-3.6.0 JPA整合”提供了一个基础的集成...

    spring-data-jpa hibernate

    - 运行问题:可能记录了一些常见的错误,如依赖冲突、配置问题、实体映射异常等,并提供了解决方案。 - 性能优化:可能包含关于缓存设置、批处理更新等提升性能的建议。 6. **springDataJpaDemo1项目**: 这个...

    Spring3, JPA2( Hibernate4)整合开发DWP

    在本项目中,我们主要探讨的是如何将Spring3、JPA2(Hibernate4)整合到一个Dynamic Web Project中,以实现高效、灵活的企业级数据库管理。这是一个基础的Java Web应用程序开发教程,旨在帮助开发者理解如何在...

    operamasks整合spring、jpa(hibernate)测试grid

    标题中的“operamasks整合spring、jpa(hibernate)测试grid”表明这是一个关于将OperaMasks(一个前端框架)与Spring(一个后端框架)以及JPA(Java Persistence API,Java持久化API)结合使用的教程,其中JPA的...

    hibernate错误解决方案

    本文将针对几个常见的Hibernate错误进行深入分析,并提供相应的解决方法。这些错误包括但不限于 `org.springframework.orm.ObjectRetrievalFailureException`、`org.springframework.beans.factory....

    配置hibernate-distribution-3.6.6.Final时出现的问题及解决办法

    ### 配置Hibernate 3.6.6.Final时出现的问题及解决办法 #### 问题背景 在配置和使用Hibernate 3.6.6.Final的过程中,开发者可能会遇到一些问题,尤其是在采用注解(Annotation)的方式进行配置时。本文将详细介绍在...

    Hibernate-ecommerce:Estudo Hibernate JPA

    通过深入研究"Hibernate-ecommerce:Estudo Hibernate JPA"项目,你不仅能掌握Hibernate和JPA的基本用法,还能了解到在实际电商项目中如何有效地使用这些技术,解决可能出现的问题,并优化系统的性能。这个项目的实践...

    JPA环境配置jar文件

    ### 四、常见问题及解决方法 1. **类找不到异常**:检查pom.xml中的依赖是否正确添加,确保所有必要的JAR包都已包含。 2. **连接失败**:确认`persistence.xml`或`application.properties`中的数据库URL、用户名和...

    JPA 开发中遇到的错误

    在Java Persistence API (JPA)开发过程中,开发者可能会遇到各种各样的异常情况,这些异常往往源于对JPA规范的理解不足或是代码实现上的错误。以下是从给定文件信息中提炼出的一些常见JPA开发错误及其详细解析: ##...

    jpa测试用例(很详细的介绍)

    - 常见的JPA测试框架有Hibernate Test, Spring Test, Arquillian等,选择合适的框架可以简化测试代码,提高测试效率。 9. **JPA配置** - 配置测试数据源,如H2内存数据库,方便快速设置和销毁。 - 使用@...

    JPA学习笔记

    ### 六、常见异常 在使用JPA过程中可能会遇到各种异常,如`PersistenceException`, `EntityExistsException`, `NonUniqueObjectException`, `TransactionRequiredException`等,这些异常通常反映了JPA操作中的错误...

    Spring2.5集成JPA

    在Java企业级开发中,Spring框架与Java Persistence API(JPA)的整合是常见的数据访问技术选择。本文将深入探讨Spring 2.5版本中如何与JPA进行集成,以及相关的核心概念、配置与实践应用。 一、JPA简介 Java ...

    如何实现webwork+spring+hibernate框架结合

    这里我们使用了JPA注解来替代了Hibernate的注解,这在Spring项目中更加常见,因为Spring与JPA有较好的集成支持。 #### 第四步:配置Spring和Hibernate 配置Spring容器来管理Bean的生命周期,同时配置Hibernate以...

    hibernate测试时遇到的几个异常及解决方法汇总

    在使用 Hibernate 进行测试时,可能会遇到一些异常,以下是其中的一些常见异常及其解决方法: 1. java.lang.NoSuchFieldError: INSTANCE 该异常的解决方法是删除 hibernate-annotations.jar。这个异常可能是由于 ...

    Spring_Spring_Hibernate_HibernateTemplate

    在Java企业级开发中,Spring框架和Hibernate持久层框架的结合使用是常见的技术选型。本篇将深入探讨Spring与Hibernate的集成,特别是Spring提供的HibernateTemplate,它是Spring对Hibernate的一种封装,简化了数据库...

    Hibernate配置所需jar包

    2. **hibernate-entitymanager**: 提供了JPA(Java Persistence API)的支持,使得开发者可以使用JPA规范进行操作。 3. **hibernate-validator**: 验证工具,用于验证对象的属性值是否符合预设的规则。 4. **jta/...

    springboot集成jpa

    SpringBoot集成JPA是现代Java应用开发中常见的一种技术组合,它使得数据库操作变得简单而高效。SpringBoot简化了Spring框架的配置,而Java Persistence API (JPA) 则是Java平台上的对象关系映射(ORM)标准,它允许...

    springboot-spring-data-jpa项目练习

    SpringBoot与Spring Data JPA是Java开发中常用的两个框架,它们极大地简化了Web应用和数据库交互的复杂性。本项目练习旨在帮助开发者深入理解和实践这两个技术的集成与使用。 Spring Boot是一个快速开发框架,它...

Global site tag (gtag.js) - Google Analytics