有没有办法在会话工厂(配置)级别添加一个标准,哪些所有都可以通过会话进行检索? 我们要求不从数据库中删除任何行,而是“标记”。被删除的实体,以便他们不会参与任何进一步的操作。

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

有帮助吗?

解决方案

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

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

<filter-def name="IsDeletedFilter">
  <filter-param name="IsDeleted" type="bool"/>
</filter-def>

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

<class/set  ...>
...
<filter name="IsDeletedFilter" condition=":IsDeleted = Is_Deleted"/>

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top