首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Hibernate 全球过滤器

Hibernate 全球过滤器
EN

Stack Overflow用户
提问于 2019-06-24 23:47:16
回答 1查看 0关注 0票数 0

有没有办法在会话工厂(配置)级别添加单个条件,这将适用于使用会话检索的所有实体?我们要求不从数据库中删除任何行,而是“标记”已删除的实体,以便它们不会参与任何进一步的操作。

我知道我们可以通过一个公共接口(例如一个公共基础Dao对象)来回溯所有的entites,但是使用全局过滤的方法不会出错,因为它不需要使用这个公共接口的知识。

EN

回答 1

Stack Overflow用户

发布于 2019-06-25 08:55:18

Hibernate Documentation详细阐述了这一点。看起来处理这个的最好方法是使用Filters。

首先,在类或集合上定义fitler,如下所示:

代码语言:javascript
复制
<filter-def name="IsDeletedFilter">
  <filter-param name="IsDeleted" type="bool"/>
</filter-def>

然后将它附加到类或集合:

代码语言:javascript
复制
<class/set  ...>
...
<filter name="IsDeletedFilter" condition=":IsDeleted = Is_Deleted"/>

唉,你必须对你想要软删除的每个类都这样做。但是您可以映射出基类SoftDeleteEntity并为每个子类层次结构创建一个表。

我也看到有些人声称可以和听众一起做这件事,虽然我不知道怎么做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档