Hibernate数据过滤器是一个创新的方法,以一种更具可重用性的方式和“可视化”规则来过滤从数据库获取的数据。数据过滤器有一个唯一的名字,可进行全局访问,并能接受参数值用于过滤规则。可以在Hibernate session中启用或禁用数据过滤。
请看下面的Hibernate数据过滤器示例。
在这个示例程序中,定义了一个数据过滤器,使用指定的日期过滤集合数据。Hibernate数据过滤器可以使用XML映射文件实现,也可以使用标注实现。
1、在XML映射文件中实现Hibernate数据过滤器
使用“filter-def”关键字定义一个数据过滤器,并接受一个日期参数。
下面的XML映射文件中,声明过滤器并将其赋予set集合。
在condition=”date >= :stockRecordFilterParam”中,“date”是“StockDailyRecord”的一个属性。
2、在标注(注解)中实现Hibernate数据过滤器
使用“@FilterDef”关键字定义一个数据过滤器,并使用“@ParamDef”接收一个日期参数。
下面是完整的标注示例,其中声明了一个数据过滤器并将其赋予set集合。
在condition=”date >= :stockRecordFilterParam”中,“date”是“StockDailyRecord”的一个属性。
3、怎样启用和禁用数据过滤
启用数据过滤:
禁用数据过滤:
4、应用和实现数据过滤器
下面的代码片段演示了怎样应用和实现数据过滤器。
输出结果如下:
在这个示例中(包括XML映射和标注),在启用了过滤器后,所有的“StockDailyRecord”集合都由参数日期所过滤。