String hql="select new com.sinosoft.education.prototype.TeacherInfoBean(" +
"ti.teacherId," +
"ti.teacherName," +
"(select min(pt.teacSchoolStartTime) from ti.sysEduProjectTeachers pt where pt.teacSchoolEndTime >:endtime and pt.teacSchoolStartTime <=:endtime)," +
"(select min(pt.teacSchoolEndTime) from ti.sysEduProjectTeachers pt where pt.teacSchoolEndTime >:endtime and pt.teacSchoolStartTime <=:endtime)," +
"isnull((select avg(pl.lessonTeacherPoint) from ti.sysEduProjectLessons pl ),0.0)" +
") " +
"from SysTeaTeactherInfo ti left join ti.sysTeaProfFields pf " +
"where concat(',',trim(str(pf.fieldId)),',',pf.fieldFatherStr) like "+"'%,"+fieldId.toString()+",%'" ;
List<TeacherInfoBean> teacherIds=this.findByNamedParam(hql,new String[]{"endtime"},new Object[]{DateUtil.parse("2013-11-29")});
for(TeacherInfoBean id:teacherIds)
{
System.out.println(id.getTeacherName());
System.out.println(id.getTeacherId());
System.out.println(id.getAvg());
System.out.println(DateUtil.toString(id.getComeTime()));
System.out.println(DateUtil.toString(id.getEndTime()));
}
String countHql="select count(*)"+
"from SysTeaTeactherInfo ti " +
"left join ti.sysTeaProfFields pf " +
"left join ti.sysEduProjectTeachers pt " +
"where concat(',',trim(str(pf.fieldId)),',',pf.fieldFatherStr) like "+"'%,"+fieldId.toString()+",%' " +
"and (pt.teacSchoolEndTime >=:endtime)or(pt.teacSchoolEndTime <= :endtime)" ;
System.out.println("=======================================");
return this.findByHqlOnPage(hql, page, countPerPage, new String[]{"endtime"},new Object[]{DateUtil.parse("2013-11-29")},countHql);
同时需要自定义teacherbean 且bean中的属性必须和hql语句中的元素顺序相同,否则可能会出现传值错误
分享到:
相关推荐
"Hibernate-HQL语句多对多写法" Hibernate 是一个流行的 Java 持久层框架,它提供了强大的对象关系映射(ORM)功能,使得开发者可以方便地与数据库交互。但是,在使用 Hibernate 时,我们经常会遇到多对多关系的...
- "HQL语句(结合实例).doc"则可能提供了具体的查询示例,帮助读者更好地理解和应用HQL。 通过学习这些文档,开发者可以掌握如何在Hibernate项目中高效地利用HQL进行数据查询,提升开发效率,同时保持代码的简洁...
这些连接操作可以帮助开发人员在多个表之间建立关联,从而实现更复杂的查询需求。 1. **内连接**: ```hql select employee.ID as id1, employee.Name as name1, department.ID as id2, department.Name as name2...
在实际开发中,HQL关联查询的应用场景非常广泛,特别是在需要跨多个实体进行数据检索的情况下。例如,在电子商务系统中,我们需要获取用户信息及其相关的订单信息时,就可以利用HQL关联查询来简化这一过程。此外,当...
HQL多表查询是Hibernate框架下高效、灵活地处理数据库多表关联数据的关键技术。通过理解其语法结构和实际应用场景,开发者可以更好地设计和实现复杂的数据查询逻辑,从而提升应用程序的数据处理能力和响应速度。此外...
可以在Hibernate配置文件中定义命名查询,将HQL语句与名字关联,提高代码复用性和可读性。 7. **联合查询**: 使用`JOIN`关键字可以实现对象之间的关联查询,包括内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT...
- **编写HQL语句**: 编写符合HQL语法的查询语句。 - **创建Query对象**: 使用`Session.createQuery()`方法创建`Query`对象。 - **执行查询**: 调用`Query`对象的`list()`方法执行查询并获取结果集。 **2.3 HQL支持...
例如,查询所有User对象的HQL语句为:“FROM User”。 二、HQL基本结构 1. SELECT子句:HQL支持多种选择项,包括属性、方法、计算表达式等,如“SELECT u.name FROM User u”。 2. FROM子句:指定查询的实体类,如...
HQL极大地提高了开发效率,尤其是在处理复杂的对象关联查询时。 ### 1. Student.hbm.xml 和 Classes.hbm.xml 在Hibernate配置中,`.hbm.xml` 文件是映射文件,用于定义Java类和数据库表之间的映射关系。`Student....
### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...
### HQL语句详解:精通Hibernate查询语言 #### 引言 HQL(Hibernate Query Language)是Hibernate框架中用于执行数据库操作的一种强大的查询语言。它提供了面向对象的语法,允许开发人员以一种接近于编程语言的方式...
Hibernate 支持多种方式来实现多表连接查询,包括 HQL(Hibernate Query Language)和 Criteria 查询。本项目主要关注 Criteria API 的使用,这是一种基于 Java 对象的查询方式,更加灵活且易于理解和维护。 **...
3. **多表查询** HQL支持连接查询,可以处理对象之间的关联关系。比如,通过User查询其对应的Order: ```sql SELECT u, o FROM User u JOIN u.orders o ``` 4. **聚合函数** HQL提供了COUNT、MAX、MIN、SUM、...
### HQL语句查询知识点详解 #### 一、HQL简介 HQL(Hibernate Query Language)是Hibernate框架中用于查询数据的一种语言。它类似于SQL,但面向对象特性更明显,可以更加灵活地处理复杂的对象图关系。HQL支持基本的...
2. **编写HQL语句**:根据需求构建HQL查询语句,这一步骤需要熟悉HQL语法结构。 3. **创建Query对象**:利用Session对象的`createQuery`方法,传入HQL语句创建Query实例。 4. **设置参数**:如果HQL语句中包含...
标题"**HQL多对多的查询语句分析**"主要关注的是如何在Hibernate中使用HQL处理数据库中的多对多关联关系查询。在数据库设计中,多对多关系是最复杂的关联类型,它意味着一个实体可以与多个其他实体相关联,反之亦然...
### HQL语句语法详解 HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的机制来查询数据库中的数据,并将其映射到Java对象上。本篇文章将根据给定的信息深入探讨HQL的基本语法结构...
综上所述,HQL的高级应用涵盖了查询优化、数据检索策略的选择、命名查询的使用以及本地SQL查询的实施等多个方面,这些都是提升Hibernate应用性能的关键技术点。在实际开发中,合理运用这些技术,可以显著提升应用的...
HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的查询语言,它是SQL的面向对象版本,使得开发者可以更方便地在Java应用中进行数据库查询。本教程将深入讲解HQL的基础语句,包括ID...