gpt4 book ai didi

java - Hibernate 全局过滤条件

转载 作者:行者123 更新时间:2023-11-30 09:59:02 54 4
gpt4 key购买 nike

有没有一种方法可以在 session 工厂(配置)级别添加一个标准,该标准将应用于所有通过 session 检索的实体?我们要求不从数据库中删除任何行,而是“标记”已删除的实体,这样它们就不会参与任何进一步的操作。

我知道我们可以通过一个公共(public)接口(interface)(例如一个公共(public)基础 Dao 对象)检索所有实体,但是全局过滤的方法不太容易出错,因为它不需要使用这个公共(public)接口(interface)的知识.

最佳答案

The Hibernate Documentation详细说明这一点。看起来处理此问题的最佳方法是使用过滤器。

首先,您像这样在类或集合上定义一个过滤器:

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

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

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

唉,您必须对每个要软删除的类执行此操作。但是您可以映射出一个基类 SoftDeleteEntity 并且每个子类层次结构都有一个表。

我也看到一些人声称能够对听众做到这一点,但我不知道如何做到这一点。

关于java - Hibernate 全局过滤条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138631/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com