`

多表关联(二)-hql语句查询

    博客分类:
  • hql
阅读更多
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-HQL语句多对多写法" Hibernate 是一个流行的 Java 持久层框架,它提供了强大的对象关系映射(ORM)功能,使得开发者可以方便地与数据库交互。但是,在使用 Hibernate 时,我们经常会遇到多对多关系的...

    Hibernate-HQL-查询-Query资料

    - "HQL语句(结合实例).doc"则可能提供了具体的查询示例,帮助读者更好地理解和应用HQL。 通过学习这些文档,开发者可以掌握如何在Hibernate项目中高效地利用HQL进行数据查询,提升开发效率,同时保持代码的简洁...

    hibernate查询语句--HQL

    这些连接操作可以帮助开发人员在多个表之间建立关联,从而实现更复杂的查询需求。 1. **内连接**: ```hql select employee.ID as id1, employee.Name as name1, department.ID as id2, department.Name as name2...

    hibernateHQL关联查询

    在实际开发中,HQL关联查询的应用场景非常广泛,特别是在需要跨多个实体进行数据检索的情况下。例如,在电子商务系统中,我们需要获取用户信息及其相关的订单信息时,就可以利用HQL关联查询来简化这一过程。此外,当...

    hql多表查询

    HQL多表查询是Hibernate框架下高效、灵活地处理数据库多表关联数据的关键技术。通过理解其语法结构和实际应用场景,开发者可以更好地设计和实现复杂的数据查询逻辑,从而提升应用程序的数据处理能力和响应速度。此外...

    Spring--HQL-chaxun.zip_HQL

    可以在Hibernate配置文件中定义命名查询,将HQL语句与名字关联,提高代码复用性和可读性。 7. **联合查询**: 使用`JOIN`关键字可以实现对象之间的关联查询,包括内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT...

    03-HQL实用技术.pdf

    - **编写HQL语句**: 编写符合HQL语法的查询语句。 - **创建Query对象**: 使用`Session.createQuery()`方法创建`Query`对象。 - **执行查询**: 调用`Query`对象的`list()`方法执行查询并获取结果集。 **2.3 HQL支持...

    Hibernate-HQL.rar_HQL_hibernate hql

    例如,查询所有User对象的HQL语句为:“FROM User”。 二、HQL基本结构 1. SELECT子句:HQL支持多种选择项,包括属性、方法、计算表达式等,如“SELECT u.name FROM User u”。 2. FROM子句:指定查询的实体类,如...

    hibernate查询语言--HQL

    HQL极大地提高了开发效率,尤其是在处理复杂的对象关联查询时。 ### 1. Student.hbm.xml 和 Classes.hbm.xml 在Hibernate配置中,`.hbm.xml` 文件是映射文件,用于定义Java类和数据库表之间的映射关系。`Student....

    hibernate 中HQL语句查询学习笔记

    ### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...

    hql语句大全hql语句大全

    ### HQL语句详解:精通Hibernate查询语言 #### 引言 HQL(Hibernate Query Language)是Hibernate框架中用于执行数据库操作的一种强大的查询语言。它提供了面向对象的语法,允许开发人员以一种接近于编程语言的方式...

    Hibernate 多表连接分页查询示范项目

    Hibernate 支持多种方式来实现多表连接查询,包括 HQL(Hibernate Query Language)和 Criteria 查询。本项目主要关注 Criteria API 的使用,这是一种基于 Java 对象的查询方式,更加灵活且易于理解和维护。 **...

    hibernate-HQL用例

    3. **多表查询** HQL支持连接查询,可以处理对象之间的关联关系。比如,通过User查询其对应的Order: ```sql SELECT u, o FROM User u JOIN u.orders o ``` 4. **聚合函数** HQL提供了COUNT、MAX、MIN、SUM、...

    hql语句查询

    ### HQL语句查询知识点详解 #### 一、HQL简介 HQL(Hibernate Query Language)是Hibernate框架中用于查询数据的一种语言。它类似于SQL,但面向对象特性更明显,可以更加灵活地处理复杂的对象图关系。HQL支持基本的...

    HQL查询及语法

    2. **编写HQL语句**:根据需求构建HQL查询语句,这一步骤需要熟悉HQL语法结构。 3. **创建Query对象**:利用Session对象的`createQuery`方法,传入HQL语句创建Query实例。 4. **设置参数**:如果HQL语句中包含...

    HQL多对多的查询语句分析

    标题"**HQL多对多的查询语句分析**"主要关注的是如何在Hibernate中使用HQL处理数据库中的多对多关联关系查询。在数据库设计中,多对多关系是最复杂的关联类型,它意味着一个实体可以与多个其他实体相关联,反之亦然...

    hql语句语法详解hql语句

    ### HQL语句语法详解 HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的机制来查询数据库中的数据,并将其映射到Java对象上。本篇文章将根据给定的信息深入探讨HQL的基本语法结构...

    04-HQL高级.pdf

    综上所述,HQL的高级应用涵盖了查询优化、数据检索策略的选择、命名查询的使用以及本地SQL查询的实施等多个方面,这些都是提升Hibernate应用性能的关键技术点。在实际开发中,合理运用这些技术,可以显著提升应用的...

    hql基础语句

    HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的查询语言,它是SQL的面向对象版本,使得开发者可以更方便地在Java应用中进行数据库查询。本教程将深入讲解HQL的基础语句,包括ID...

Global site tag (gtag.js) - Google Analytics