有没有办法在会话工厂(配置)级别添加单个条件,这将适用于使用会话检索的所有实体?我们要求不从数据库中删除任何行,而是“标记”已删除的实体,以便它们不会参与任何进一步的操作。
我知道我们可以通过一个公共接口(例如一个公共基础Dao对象)来回溯所有的entites,但是使用全局过滤的方法不会出错,因为它不需要使用这个公共接口的知识。
发布于 2019-06-25 08:55:18
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
并为每个子类层次结构创建一个表。
我也看到有些人声称可以和听众一起做这件事,虽然我不知道怎么做。
https://stackoverflow.com/questions/-100001285
复制相似问题