已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据过滤并不是一种常规的数据查询方法,而是一种整体的筛选方法。数据过滤也可对数据进行筛选,因此,将其放在Hibernate的数据查询框架中介绍。如果一旦启用了数据过滤器,则不管数据查询,还是数据加载,该过滤器将自动作用于所有数据,只有满足过滤条件的记录才会被选出来。过滤器与定义在类和集合映射文件上的“where”属性非常相似。它们的区别是过滤器可以带参数,应用程序可以在运行时决定是否启用指定的过滤器,以及使用什么样的参数值。而映射文件上的“where”属性将一直生效,且无法动态传入参数。过滤器的用法很像数据库视图,区别是视图在数据库中已经定义完成,而过滤器则还需在应用程序中确定参数值。过滤器的使用分成三步:(1)定义过滤器。使用filter-def元素定义过滤器;(2)使用过滤器。使用filter元素使用过滤器;(3)在代码中启用过滤器。前两个步骤都是在Hibernate的映射文件中完成的,其中filter-def是hibernate-mapping元素的子元素,而filter元素是class集合元素的子元素。filter-def元素用于定义一个过滤器,filter则将指定的过滤器应用到指定的持久化类。一个持久化类或集合可以使用多个过滤器,而一个过滤器也可以作用于多个持久化类或集合。看下面的映射文件示例: 在上面的配置文件中,定义了两个过滤器,过滤器的定义通过filter-def元素完成。定义过滤器时,只需要指定过滤器的名字,以及过滤器的参数即可。如Java里的一个方法声明,只有方法名和参数列表,具体的方法实现是没有的。过滤器的过滤条件是使用过滤器时才确定的,使用过滤器通过filter元素确定,filter的condition属性用于确定过滤条件,满足该条件的记录才会被抓取到。系统默认不启用过滤器,必须显式通过enableFilter(String filterName)才可以启用过滤器,该方法返回一个Filter实例,Filter包含setParameter方法用于为过滤器参数赋值。一旦启用了过滤器,过滤器在整个Session内有效,所有的数据加载将自动应用该过滤条件,直到调用disableFilter方法。看下面的使用过滤器的示例代码:private void test() throws Exception /获取Hibernate Session对象 Session session = HibernateUtil.currentSession(); /开始事务 Transaction tx = session.beginTransaction(); /启用第一个过滤器 session.enableFilter(effectiveDate) /为过滤器设置参数 .setParameter(asOfDate, new Date(); /启动第二个过滤器 session.enableFilter(category) /为过滤器设置参数 .setParameter(catId, new Long(2); /执行查询,该查询没有任何的查询条件 Iterator results = session.createQuery(from Product as p) .iterate(); /遍历结果集 while (results.hasNext() Product p = (Product)results.next(); System.out.println(p.getName(); /此处获取Product关联的种类,过滤器也将自动应用过滤 Iterator it = p.getCategories().iterator(); System.out.println(p.getCategories().size(); while (it.hasNext() Category c = (Category)it.next(); System.out.println(c.getName(); mit(); HibernateUt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 木材保护与改性处理工岗前岗位知识考核试卷含答案
- 城市轨道交通行车调度员操作规范测试考核试卷含答案
- 纺纱工岗位实操知识水平考核试卷含答案
- 地勘钻探工技术传承测试考核试卷含答案
- 农药使用培训员岗前实操综合知识考核试卷含答案
- 2025-2026学年大班线条舞蹈说课稿
- 2025-2026学年大灰狼音乐说课稿
- 2026年互联网批发行业市场深度调研报告及未来五至十年技术路径与产业化前景
- 2026年房地产中介服务行业发展研究报告及未来五至十年资本热度与投融资趋势
- 2026年海水养殖行业产业研究报告及未来五至十年政策驱动与市场机遇展望
- 2026-2027学年高三第一次联考(月考)试卷化学+答案
- 2025年四川省检察院逐级遴选考试题及答案
- 小学六年级信息科技《避免故障保安全》项目式教学设计及核心素养落实策略
- GB/T 48132.1-2026绿色矿山建设规范第1部分:煤炭矿山
- 矿山自救器使用维护安全培训
- 广东省珠海市文园教育集团2025-2026学年七年级上学期语文期中试卷(含答案)
- GB 28480-2026首饰安全技术要求
- 展会策划高手如何利用AI设计展台与互动体验环节技巧
- 2026中国东航服务管理部招聘笔试备考试题附答案解析
- 计算机与人工智能导论 课件 第3章-计算机硬件基础
- 面部整骨培训课件
评论
0/150
提交评论