程序使用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关键字前不能有其他信息![](/images/smiles/icon_biggrin.gif)
分享到:
相关推荐
### WebLogic 12下org.hibernate.hql.ast.HqlToken冲突解决方案 在使用WebLogic 12部署应用程序时,可能会遇到与`org.hibernate.hql.ast.HqlToken`相关的异常问题。这种异常通常与Hibernate版本之间的不兼容性有关...
总之,解决“weblogic10.3 org.hibernate.hql.ast.HqlToken报错”问题需要对Hibernate和WebLogic有深入的理解,以及对HQL语法的熟练掌握。通过逐步排查和测试,通常能找到问题的根源并成功解决。同时,保持软件更新...
标题 "org.hibernate.ejb-library-3.4.0.GA-A" 指示这是一个与Hibernate相关的库,特别针对EJB(Enterprise JavaBeans)版本3.4.0,并且是为OSGi环境优化的。描述中提到它适用于在Virgo Jetty服务器上进行Web开发,...
weblogic10 与hibernate冲突解决方案 错误如下:org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken linux windows 环境解决方案全解 Linux 启动脚本添加如下: export USER_...
5. **查询(Querying)**:Hibernate提供HQL(Hibernate Query Language)和Criteria API进行数据查询。HQL是一种面向对象的查询语言,而Criteria API更接近于面向对象的编程方式。 **使用流程** 1. **配置**:...
1. org.hibernate.Query Interface:用于向数据库查询对象,封装了 HQL 查询语句,和 SQL 很类似,唯一的区别在于 HQL 是面向对象的。 2. org.hibernate.Criteria Interface:完全封装了基于字符串形式的查询语句,...
对hibernate的hql进行了详尽的讲解
Query 封装了 HQL(Hibernate Query Language)查询语句,和 SQL 很类似,唯一的区别在于 HQL 是面向对象的。 2. org.hibernate.Criteria Interface:完全封装了基于字符串形式的查询语句,更加面向对象,擅长执行...
### Hibernate数据检索(HQL)知识点详解 #### 一、简介 Hibernate 是一款开源的对象关系映射(ORM)框架,它允许开发人员将 Java 对象映射到数据库表中的记录,从而极大地简化了数据访问层的开发工作。本文档基于...
本篇文档将深入探讨Hibernate中的HQL(Hibernate Query Language),一种面向对象的查询语言,它提供了与SQL类似的语法,但更贴近于面向对象的思维模式,使得开发者可以更加便捷地进行数据查询。 一、HQL简介 HQL是...
在Java世界中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层的数据访问细节。本文将深入探讨Hibernate配置文件,这是使用Hibernate进行数据库...
#hibernate.query.factory_class org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory ################# ### Platforms ### ################# ## JNDI Datasource #hibernate.connection....
重点分析`org.hibernate.hql.ast.ASTQueryTranslatorFactory`和`org.hibernate.criterion.Criterion`接口。 3. **实体管理与状态转换**:实体管理是Hibernate的核心功能之一,包括持久化、加载、更新和删除等操作。...
`org.hibernate.hql`和`org.hibernate.hql.ast`包包含了HQL的解析和执行逻辑。另外,Criteria API提供了一种更加灵活的查询方式,允许在运行时动态构造查询条件。 6. **事件与拦截器:** - Hibernate的`org....
例如,`QueryTranslator`负责将HQL(Hibernate查询语言)转化为SQL,而`TransactionCoordinator`则处理事务相关逻辑。 7. **org.hibernate.event** 包:事件处理相关类,如监听器接口和实现,允许开发者在特定的...
在源代码中,`org.hibernate.hql`和`org.hibernate.criterion`包下包含了这些功能的实现。 4. **缓存机制** Hibernate有两级缓存:第一级缓存是Session级别的,每个Session都有自己的缓存;第二级缓存是...
这份笔记涵盖了Hibernate的核心概念、配置、实体管理、会话管理、查询语言(HQL)等多个方面,旨在帮助初学者快速理解和掌握Hibernate的使用。 1. Hibernate核心概念:Hibernate是一个开源的ORM框架,它提供了一种...
7. HQL和Criteria API:Hibernate Query Language(HQL)是Hibernate特有的面向对象的查询语言,类似于SQL,但操作的是对象而非表格。Criteria API是一种类型安全的API,可以动态构建查询,避免SQL注入风险。 8. ...
### Hibernate常见错误及解决办法 #### 一、Nodefaultconstructorforentity 错误 **问题描述**:在使用Hibernate执行查询语句时,系统抛出`Nodefaultconstructorforentity`错误。 **可能原因**:该错误通常是由于...
`org.hibernate.hql`包包含了HQL解析器和执行器,可以用于执行复杂的查询。 5. **事务管理**:在`org.hibernate.transaction`包中,Hibernate提供了与各种事务系统的接口,包括JTA(Java Transaction API)和JDBC...