Hibernate入门(9):数据过滤
2017-09-09 00:03
561 查看
Hibernate 数据过滤
1、数据过滤可以理解成一种特殊的数据查询方式,这是一种整体的数据筛选方法,一旦启用数据过滤器,改过滤器会自动作用于指定作用域,只有满足过滤记录的数据才可以被选出啦,从这个角度来讲,Hibernate提供的数据过滤机制,可以看成是条件查询的一种辅助手段;2、Hibernate 提供了以下的注解用于支持过滤器@FilterDef:配置过滤器;@Filter :应用过滤器;3、使用示例以下示例配置2个过滤器,一个全局过滤器,一个局部过滤器User.java
/*分别配置2个过滤器 过滤器 effectiveAge:全局过滤器,用于对age属性进行过滤; 过滤器 effectiveDate:局部过滤器,用于对关联实体Comment的createDate属性进行过滤*/ //配置与User相关的过滤器的参数类型 @FilterDefs({ @FilterDef(name = "effectiveDate", //过滤器名称为 “effectiveDate”的参数列表 parameters = {@ParamDef(name = "dateLimit", type = "date")}), //该过滤器含有一个参数"dateLimit",类型为Date @FilterDef(name = "effectiveAge", parameters = {@ParamDef(name = "ageLimit", type = "int")}) }) @Entity @Table(name="users") @Filter(name="effectiveAge",condition = "age >= :ageLimit") //全局过滤器 effectiveAge public class User { @Id @Column(name="user_id") private int id; @Column(name="user_name") private String name; @Column(name="user_age") private String age; @OneToMany(targetEntity = Comment.class,cascade=CascadeType.ALL,mappedBy = "user") @Filter(name="effectiveDate",condition = "createDate >= :dateLimit") //局部过滤器 effectiveDate private Set<Comment> comments = new HashSet<>();Test.java
public class Test { public static void main (String[] args) throws Exception{ Session session = HibernateUtil.currentSession(); Transaction tran = session.beginTransaction(); //启动两个个过滤器,并对其配置参数 session.enableFilter("effectiveDate") .setParameter("dateLimit",new SimpleDateFormat("yyyy-MM-ss").parse("2016-01-01")); session.enableFilter("effectiveAge") .setParameter("ageLimit",18); List list = session.createQuery("select u from Users u") .list(); tran.commit(); HibernateUtil.closeSession(); } }
相关文章推荐
- hibernate之数据过滤
- hibernate入门--实现数据简单插入
- Hibernate入门05 - 基本数据查询
- Hibernate实战数据持久化之二hibernate简单的入门实例
- Hibernate入门07 - 更新,删除数据
- jackson json数据过滤,用于hibernate的懒加载对象级联关系的json解析
- Hibernate入门07 - 更新,删除数据
- hibernate之数据过滤--实例1
- Hibernate入门(4)- Hibernate数据操作
- JavaEE--------> Hibernate入门 -->使用Hibernate实现数据的删改
- Hibernate数据过滤
- Spring入门之解决HibernateTemplate.save()不能写入数据
- MySQL入门-5:数据过滤
- pandas入门——数据过滤
- Hibernate基础:快速入门(4):增加数据
- Hibernate-----15、数据过滤
- Hibernate入门:批量插入数据
- Hibernate的数据过滤查询
- (数据挖掘-入门-1)基于用户的协同过滤之最近邻
- Hibernate入门:批量插入数据