zoukankan      html  css  js  c++  java
  • hibernate基础21:过滤器(filters)

    过滤器(filters):一种创新的方式来处理具有“显性(visibility)”规则的数据。

    Hibernate filter是全局有效的、具有名字、可以带参数的过滤器, 对于某个特定的Hibernate session您可以选择是否启用(或禁用)某个过滤器

    1、配置hbm.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.project.pojo">
        <!-- 定义过滤器 name是过滤器名称 全局唯一 -->
        <filter-def name="userFilter">
            <!-- 过滤器可以携带参数 需要指定参数的名称和类型 -->
            <filter-param name="age" type="int"/>
        </filter-def>
        
        <class name="User" table="t_user">
            <id name="id" column="id" type="int">
                <generator class="native"></generator>
            </id>
            <property name="name" column="name" type="java.lang.String"></property>
            <property name="age" column="age" type="int"></property>
            
            <!-- 引用过滤器时指定名或条件 第一个age是列名称-->
            <filter name="userFilter" condition="age>:age"></filter>
        </class>
    
        <sql-query name="findUser">
            select * from t_user;
        </sql-query>
    </hibernate-mapping>

    2、代码测试

    @Test
        public void testFilter(){
            //设置filter
            session.enableFilter("userFilter").setParameter("age", 28);
            //查询
            List<User> list = session.createQuery("from User").list();
            for(User u : list){
                System.out.println(u.getName()+"	"+u.getAge());
            }
        }
  • 相关阅读:
    springcloud 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离
    java 整合redis缓存 SSM 后台框架 rest接口 shiro druid maven bootstrap html5
    继承
    封装
    对象的生命周期
    类与对象
    如何理解类?
    面向过程
    jdk1.8新特性
    git使用指南
  • 原文地址:https://www.cnblogs.com/chai-blogs/p/12993578.html
Copyright © 2011-2022 走看看