`
heweina2007
  • 浏览: 68825 次
  • 性别: Icon_minigender_2
  • 来自: 沈阳
社区版块
存档分类
最新评论

org.hibernate.hql.ast.ErrorCounter reportError解决办法

阅读更多

程序使用ssh整合框架,DAO实现层中的一个方法

/**
  * 根据来电号码获取前三条表单信息
  * @param billInfoTelephone 来电号码
  * @return 前三条表单信息
  */

public List<BillInfo> getTopThreeBillInfos(String billInfoTelephone){
  
 List<BillInfo> list = new ArrayList<BillInfo>();
  SessionFactory sessionFactory = this.getHibernateTemplate().getSessionFactory();
  Session session = sessionFactory.openSession();
  try{
   if(billInfoTelephone!=null){
    StringBuffer hql = new StringBuffer("");

    hql.append("select top 3 * from BillInfo b where b.baseInfo.billInfoTelephone=:billInfoTelephone")
    //按来电时间降序排列
    .append(" order by b.baseInfo.answerTime desc");
    
    Query query = session.createQuery(hql.toString());

    query.setParameter("billInfoTelephone", billInfoTelephone);
   
 list = query.list();    
   }
  }catch(Exception e){
   Log.warn(AddInfoDAOImpl.class +".getTopThreeBillInfos方法:"+e.getMessage());
  }

  
  session.close();
  return list;

控制台错误:

2011-4-2 14:18:19 org.hibernate.hql.ast.ErrorCounter reportError
严重: line 1:12: unexpected token: 3
2011-4-2 14:18:19 org.hibernate.hql.ast.ErrorCounter reportError
严重: line 1:16: unexpected token: from
2011-4-2 14:18:19 org.hibernate.jdbc.util.SQLStatementLogger logStatement

 

修改为以下代码,问题解决,主要注意黄色部分。

/**
  * 根据来电号码获取前三条表单信息
  * @param billInfoTelephone 来电号码
  * @return 前三条表单信息
  */
 public List<BillInfo> getTopThreeBillInfos(String billInfoTelephone){
  
  List<BillInfo> list = new ArrayList<BillInfo>();
  SessionFactory sessionFactory = this.getHibernateTemplate().getSessionFactory();
  Session session = sessionFactory.openSession();
  try{
   if(billInfoTelephone!=null){
    StringBuffer hql = new StringBuffer("");

    hql.append("from BillInfo b where b.baseInfo.billInfoTelephone=:billInfoTelephone")
    //按来电时间降序排列
    .append(" order by b.baseInfo.answerTime desc");
    
    Query query = session.createQuery(hql.toString());

    query.setParameter("billInfoTelephone", billInfoTelephone);

    list = query.list().subList(0, 2);

   }
  }catch(Exception e){
   Log.warn(AddInfoDAOImpl.class +".getTopThreeBillInfos方法:"+e.getMessage());
  }
  
  session.close();
  return list;
 }

 

总结:hql中from关键字前不能有其他信息

分享到:
评论

相关推荐

    weblogic12 下 org.hibernate.hql.ast.HqlToken

    ### WebLogic 12下org.hibernate.hql.ast.HqlToken冲突解决方案 在使用WebLogic 12部署应用程序时,可能会遇到与`org.hibernate.hql.ast.HqlToken`相关的异常问题。这种异常通常与Hibernate版本之间的不兼容性有关...

    weblogic10.3 org.hibernate.hql.ast.HqlToken报错问题

    总之,解决“weblogic10.3 org.hibernate.hql.ast.HqlToken报错”问题需要对Hibernate和WebLogic有深入的理解,以及对HQL语法的熟练掌握。通过逐步排查和测试,通常能找到问题的根源并成功解决。同时,保持软件更新...

    org.hibernate.ejb-library-3.4.0.GA-A

    标题 "org.hibernate.ejb-library-3.4.0.GA-A" 指示这是一个与Hibernate相关的库,特别针对EJB(Enterprise JavaBeans)版本3.4.0,并且是为OSGi环境优化的。描述中提到它适用于在Virgo Jetty服务器上进行Web开发,...

    weblogic10 与hibernate冲突解决方案 linux windows环境全解

    weblogic10 与hibernate冲突解决方案 错误如下:org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken linux windows 环境解决方案全解 Linux 启动脚本添加如下: export USER_...

    hibernate annotations

    5. **查询(Querying)**:Hibernate提供HQL(Hibernate Query Language)和Criteria API进行数据查询。HQL是一种面向对象的查询语言,而Criteria API更接近于面向对象的编程方式。 **使用流程** 1. **配置**:...

    hibernate(api 介绍).pdf

    1. org.hibernate.Query Interface:用于向数据库查询对象,封装了 HQL 查询语句,和 SQL 很类似,唯一的区别在于 HQL 是面向对象的。 2. org.hibernate.Criteria Interface:完全封装了基于字符串形式的查询语句,...

    Hibernate_HQL.rar_hibernate HQL_hibernate hql src

    对hibernate的hql进行了详尽的讲解

    hibernate(api 介绍).docx

    Query 封装了 HQL(Hibernate Query Language)查询语句,和 SQL 很类似,唯一的区别在于 HQL 是面向对象的。 2. org.hibernate.Criteria Interface:完全封装了基于字符串形式的查询语句,更加面向对象,擅长执行...

    Hibernate数据检索(HQL)笔记

    ### Hibernate数据检索(HQL)知识点详解 #### 一、简介 Hibernate 是一款开源的对象关系映射(ORM)框架,它允许开发人员将 Java 对象映射到数据库表中的记录,从而极大地简化了数据访问层的开发工作。本文档基于...

    Hibernate-HQL.rar_HQL_hibernate hql

    本篇文档将深入探讨Hibernate中的HQL(Hibernate Query Language),一种面向对象的查询语言,它提供了与SQL类似的语法,但更贴近于面向对象的思维模式,使得开发者可以更加便捷地进行数据查询。 一、HQL简介 HQL是...

    hibernate--5.Hibernate配置文件详解-2

    在Java世界中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层的数据访问细节。本文将深入探讨Hibernate配置文件,这是使用Hibernate进行数据库...

    hibernate.properties

    #hibernate.query.factory_class org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory ################# ### Platforms ### ################# ## JNDI Datasource #hibernate.connection....

    Hibernate官方网站源代码调试

    重点分析`org.hibernate.hql.ast.ASTQueryTranslatorFactory`和`org.hibernate.criterion.Criterion`接口。 3. **实体管理与状态转换**:实体管理是Hibernate的核心功能之一,包括持久化、加载、更新和删除等操作。...

    hibernate3.2官方源代码

    `org.hibernate.hql`和`org.hibernate.hql.ast`包包含了HQL的解析和执行逻辑。另外,Criteria API提供了一种更加灵活的查询方式,允许在运行时动态构造查询条件。 6. **事件与拦截器:** - Hibernate的`org....

    hibernate-src.zip源代码包

    例如,`QueryTranslator`负责将HQL(Hibernate查询语言)转化为SQL,而`TransactionCoordinator`则处理事务相关逻辑。 7. **org.hibernate.event** 包:事件处理相关类,如监听器接口和实现,允许开发者在特定的...

    hibernate-3.2.5源代码分析

    在源代码中,`org.hibernate.hql`和`org.hibernate.criterion`包下包含了这些功能的实现。 4. **缓存机制** Hibernate有两级缓存:第一级缓存是Session级别的,每个Session都有自己的缓存;第二级缓存是...

    韩顺平.2011版.hibernate笔记.zip

    这份笔记涵盖了Hibernate的核心概念、配置、实体管理、会话管理、查询语言(HQL)等多个方面,旨在帮助初学者快速理解和掌握Hibernate的使用。 1. Hibernate核心概念:Hibernate是一个开源的ORM框架,它提供了一种...

    hibernate基础jar包

    7. HQL和Criteria API:Hibernate Query Language(HQL)是Hibernate特有的面向对象的查询语言,类似于SQL,但操作的是对象而非表格。Criteria API是一种类型安全的API,可以动态构建查询,避免SQL注入风险。 8. ...

    Hibernate错误及解决办法集合

    ### Hibernate常见错误及解决办法 #### 一、Nodefaultconstructorforentity 错误 **问题描述**:在使用Hibernate执行查询语句时,系统抛出`Nodefaultconstructorforentity`错误。 **可能原因**:该错误通常是由于...

    hibernate4.22源码

    `org.hibernate.hql`包包含了HQL解析器和执行器,可以用于执行复杂的查询。 5. **事务管理**:在`org.hibernate.transaction`包中,Hibernate提供了与各种事务系统的接口,包括JTA(Java Transaction API)和JDBC...

Global site tag (gtag.js) - Google Analytics