`
wlh269
  • 浏览: 455741 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HQL (六) 查询过滤器

阅读更多
查询过滤器
设置了查询过滤器,并在程序中打开了过滤器,则在同一个session中,将在所有的查询语句后面都会加上预定好的查询条件,


* 在映射文件中定义过滤器的参数
* 在类的映射文件中使用过滤器参数

映射文件student.hbm.xml
<hibernate-mapping>
<class name="com.wlh.hibernate.Student" table="t_student">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="createTime"/>
<many-to-one name="classes" column="classesid"/>
                 <!--设定过滤器的条件为id小于10-->
<filter name="filtertest" condition="id &lt; :myid"></filter>

</class>
         <!--外置命名查询,查询语句-->
<query name="studentQuery">
  <![CDATA[
    select  s from Student s
   ]]>
</query>


<!--声明过滤器,并设定一个形参myid,类型为initeger-->
<filter-def name="filtertest">
<filter-param name="myid" type="integer"/>
</filter-def>


</hibernate-mapping>
* 在程序中启用过滤器
参见:FilterQueryTest.java

package com.wlh.hibernate;

import java.util.Iterator;
import java.util.List;

import junit.framework.TestCase;

import org.hibernate.Session;

public class FilterQueryTest extends TestCase{

	public void testQuery1() {
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			//启用并且给过滤器参数myid赋值为10
			session.enableFilter("filtertest")
			       .setParameter("myid", 10);
			List students=session.getNamedQuery("studentQuery")
						
								 .list();
			for(Iterator iter=students.iterator();iter.hasNext();){
				Student o=(Student)iter.next();
				System.out.println("name="+o.getName());
			}
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}	
}

分享到:
评论

相关推荐

    HQL连接查询和注解使用总结

    - 使用`GROUP BY`进行分组查询,并结合`HAVING`子句过滤分组结果。 - 注意:`GROUP BY`后`SELECT`语句中只能出现聚合函数或`GROUP BY`后的表达式。 - **子查询**: - 在HQL查询语句的`WHERE`子句中使用子查询。 ...

    HQL语法大全,并带有详细的例子

    2. **编写HQL语句**:根据查询需求编写合适的HQL查询语句。 3. **创建查询对象**:将编写的HQL语句传递给Session的`createQuery`方法来创建一个Query实例。 4. **设置参数**:如果HQL语句中含有参数,则需要通过...

    hql详细讲解,实例演示

    `&lt;filter&gt;`标签用于定义过滤器,这里的`filtertest`条件是`id ,可以动态地在查询时应用条件。 `&lt;query&gt;`标签定义了一个HQL查询,查询所有ID小于给定参数的`Student`对象。`&lt;![CDATA[ ... ]]&gt;`用于包裹HQL语句,...

    精通hibernate HQL语言

    HQL,全称Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言,它的语法结构与SQL相似,但主要针对对象和实体进行操作,而不是直接操作数据库表。HQL是Hibernate官方推荐的检索数据的主要方式...

    Hibernate 3.x过滤器的高级应用

    在Java的持久化框架Hibernate 3.x中,过滤器(Filter)是一种强大的工具,它允许开发者在不修改原有代码的情况下,动态地限制查询结果。过滤器的概念与数据库的视图类似,但提供了一种更抽象、更灵活的解决方案,...

    Hibernate中HQL语句的使用[参考].pdf

    Hibernate中HQL语句的使用 ...HQL语句可以用于各种查询场景,包括简单属性查询、多个属性的查询、使用别名、实体对象查询、外置命名查询、查询过滤器、分页查询、对象导航查询、连接查询和统计查询等。

    HQL(Hibernate Query Language):

    在实际应用中,HQL通过Hibernate的Session接口执行,可以返回列表、单个对象或者迭代器。同时,它还能与其他ORM功能,如事务管理、缓存策略等无缝集成,提供了一种强大的数据库操作手段。 综上所述,HQL作为...

    hibernate所用到HQL经典语句大全

    ### HQL经典语句大全详解 ...综上所述,HQL提供了一系列强大的查询功能,涵盖了从简单的数据检索到复杂的条件过滤和聚合分析。掌握这些基础和进阶的知识点对于高效地使用Hibernate进行数据操作至关重要。

    Grails GORM查询.pdf

    动态查询器是GORM中的核心功能之一,它提供了一种声明式的查询方式,无需在代码中预先定义方法,就可以根据属性动态生成查询方法。这种查询方式在代码中看起来像是调用了静态方法,但实际上这些方法是在运行时动态...

    动态多维度查询

    5. **前端交互**:使用JavaScript库如jQuery、Angular或React来处理用户界面的事件,如选择维度、切换过滤器等,并将这些选择发送到后端执行查询。 6. **RptMaterialReqPlanFilterUI.java**:这个文件名可能代表一...

    web高级查询+分页

    在高级查询的实现中,Struts2主要负责处理HTTP请求,将用户的查询参数从视图层(通常是HTML表单)传递到控制器,然后转发到业务逻辑层进行处理。Struts2的动作(Action)类可以接收并解析这些参数,通过执行相应的...

    新一代百度大数据查询引擎.pdf

    - **优化器**:它理解查询的含义,通过优化用户计算逻辑来提高执行效率。 4. **与现有框架的关系**: - **与MapReduce、Tez、Spark的关系**:QueryEngine作为更高层次的抽象,提供更友好的接口,使得用户能够更...

    hive综合应用案例-用户学历查询.rar

    在用户学历查询中,可以利用这些优化技术,比如预计算学历统计信息,或者通过WHERE子句过滤不必要的数据读取。 8. **JOIN操作**: 如果用户学历信息与其他表关联,如用户行为数据,那么JOIN操作是必不可少的。理解...

    hibernate3.6 文档(pdf 格式)

    - **Hibernate 过滤器**:介绍如何使用 Hibernate 过滤器来限制查询结果。 #### 二十、XML 映射 - **处理 XML 数据**:解释如何使用 Hibernate 映射 XML 数据。 - **XML 映射元数据**:介绍如何在 Hibernate 中定义...

    java学习hibernate

    第6节-过滤器和集合过滤.ppt可能会介绍Hibernate的动态筛选功能,如Filter,允许在运行时为实体添加条件,以及如何对集合进行过滤。 8. **提升性能**: 第9节-提升性能.ppt将探讨优化Hibernate应用的技巧,如缓存...

    JEECG 开发指南v3.4.2.pdf

    为了解决数据查询的复杂性,JEECG提供了查询HQL过滤器,该过滤器能够处理复杂的组合条件查询,同时还支持字段范围查询、日期控件添加等高级特性。 ### 7. 数据字典与标签 JEECG允许开发者在标签中使用数据字典,...

    hibernate资料

    为了避免这个问题,可以关闭特定属性的延迟加载(在映射文件中设置 lazy="false"),或者使用 Spring 的 OpenSessionInViewFilter 过滤器来确保 Session 在整个请求生命周期内保持打开状态。 【Hibernate 的查询...

    大数据编程林子雨实验hive安装包apache-hive-3.1.2-bin

    6. **查询数据**:使用HQL进行数据查询、聚合、过滤等操作,获取所需信息。 7. **优化查询**:根据数据规模和业务需求,调整Hive的执行计划,例如使用分区、分桶等策略提升查询效率。 通过【大数据 编程语言 hive ...

Global site tag (gtag.js) - Google Analytics