问题标签 [soft-delete]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1315 浏览

php - Symfony2 gedmo 软可删除关系检索无法正常工作

我正在使用 soft-Deletable 扩展,一切正常,除了 1 件事。

当我做以下等于真(伪代码):

但以下等于假

当我这样做时

我收到服务器 500 错误:找不到实体

我怎样才能使它返回null?还是我做错了?

非常感谢

0 投票
2 回答
616 浏览

neo4j - 如何在 neo4j 中软删除功能?

在 mysql 等关系数据库中,我习惯于通过设置deleted_at来进行软删除。然后检索SELECT 只需获取行 WHERE deleted_at IS NULL

我很困惑如何在 neo4j 数据库中实现软删除。我有多种方法,但不确定哪种方法或组合会有更多优势。

我还阅读了Neo4j:使用可选关系实现软删除,但没有帮助。

  1. 只需设置节点deleted_at的属性。
  2. 删除节点标签并通过前缀“_”更改,如“Student”将变为“_Student”
  3. 删除关系并通过前缀“_”更改,如“TEACHES”将变为“_TEACHES”

在neo4j中实现软删除的最佳方式或组合或其他方式是什么?

0 投票
1 回答
1636 浏览

sql-server - 通过 SQL Server 中的更新触发器级联外键软删除标志

是否可以on update cascade使用触发器来实现?我编写了以下示例代码(也在http://sqlfiddle.com/#!6/d7298/1上):

这不起作用,因为CFK约束会引发错误。我希望级联软删除,以便在软删除父记录时软删除子记录。

IsDeleted取出CFK可以让我将更新级联到Child,但在高度并发的环境中,我相信应该有可能以损坏的数据库状态结束:

在 T0:实体框架将父级加载到内存中。没有删除父级。

在 T1:父级被另一个独立查询软删除

在 T2:EF 插入一条子记录,但由于IsDeleted不是外键的一部分,因此有一个活动子记录指向已删除的父记录。

0 投票
0 回答
1035 浏览

java - 使用延迟删除在 BST 中硬删除节点的方法

我在课堂上有一个作业,我们正在实现一个带有延迟删除的 BST。当一个节点被删除时,它只是被标记为已删除,并没有真正从树中删除。当我们想要实际硬删除树中标记为已删除的所有节点时,我们必须创建一个方法。

现在我正在使用一种方法,delete(),它沿着树递归。如果它找到一个标记为已删除的节点,它会调用 removeHard() 并在其中包含所有删除机制。我已经测试了 delete() 方法,我似乎正确地遍历了树并捕获了所有标记的节点,然后将这些节点传递给我的 removeHard() 方法。另外,当我在我的主要方法中公开调用 removeHard() 作为测试时,它会正确删除节点。结合起来,它要么根本不删除节点,要么创建重复项。

0 投票
1 回答
8285 浏览

php - 为什么 Laravel 没有找到垃圾箱()方法>

我正在尝试在 Laravel 4.1 中使用 Elequent ORM 的软删除功能

删除记录按预期工作,但是当我使用 withTrashed() 搜索结果,然后检查它是否是使用rashed() 的软删除记录时,我收到以下错误

调用未定义的方法 Illuminate\Database\Eloquent\Collection::trashed()

这是我的代码。有什么建议么?

0 投票
0 回答
1809 浏览

php - CakePHP 2.x:使用 softdelete 的级联删除不起作用

我对 CakePHP 2.x使用Utils 插件的softdelete 行为

我有以下 4 张桌子

  1. 顾客
  2. 客户地址
  3. 客户联系人
  4. 客户报告

并考虑遵循其相互关系,

1. 为客户

客户有很多客户地址

客户有很多客户联系方式

客户有很多客户报告

2. 对于 customer_addresses

客户地址属于客户

CustomerAddress 属于状态

客户地址有一个客户联系方式

CustomerAddress 有一个 CustomerReport

3.对于customer_contacts

客户联系属于客户

CustomerContact 属于 CustomerAddress

4. 对于客户报告

客户报告属于客户

CustomerReport 属于 CustomerAddress

我在引导程序中放入了以下代码。

我还在上述所有模型中添加了下面的actAs

我已经在我的 appModel 中添加了以下代码。

当我尝试在没有软删除的情况下级联删除(意味着简单的级联删除)时,它工作正常。但我的问题是。当我使用Utils 插件的 softdelete 行为时,级联删除不起作用。

我尝试使用以下代码删除记录

SQL 日志

我该如何解决这个问题?

0 投票
3 回答
1877 浏览

java - hibernate常见地方的逻辑删除

我正在为我的应用程序使用 Spring 和 Hibernate。

我只允许在需要设置字段 isActive=false 的应用程序中进行逻辑删除。我没有在所有实体中重复相同的字段,而是为“isActive”创建了一个具有属性和 getter-setter 的基类。

因此,在删除期间,我调用 update() 方法并将 isActive 设置为 false。

我无法让这个工作。如果有人有任何想法,请告诉我。

基础实体

子实体

休眠实用程序类

0 投票
0 回答
1160 浏览

java - 在休眠中使用@MappedSuperclass 级联软删除

我正在开发一个具有复杂数据库模式的大型应用程序。我正在使用SpringHibernate开发。我想知道如何软删除一个实体(活动字段在超类中,而不是在所有实体中)。我实施了此处提供的建议。

下面是我的实体和休眠实用程序类的结构

基础实体

子实体:

休眠实用程序类:

现在我对此有一些要求,我现在无法解决。

  1. 当我删除“角色”实体时,所有子实体也应被删除(仅对所有实体进行软删除):->我是否需要获取父实体,遍历子实体并一一删除?

  2. 角色具有与另一个实体“部门”的外键引用。如果一个部门被删除,相关的角色应该被有条件地删除(即,只有当调用者决定:在某些情况下,我们不想删除被引用的实体)。

  3. 有一些自引用列,例如“ParentRoleId”。如果一个角色被删除,它所有引用的角色也应该被删除。-> 我是否需要获取 ID,然后删除所有自引用的子实体,然后删除每个实体?例如:部门可以有一个父部门(通过使用字段:parentdeptid)。如果我删除一个父部门,所有子部门都应该被删除

如果有人对如何执行此操作有任何建议,请告诉我。

0 投票
1 回答
9392 浏览

php - Laravel QueryException 绕过 try-catch?

我正在使用 Laravel 4 和 Eloquent ORM。在我的系统中,当有人删除一条记录时,它必须检查它是否有任何关联的记录。如果没有,那么它可能会被永久删除。但如果是这样,只需执行一次 softDeletion。

处理这种情况的方式是:尝试强制删除,如果它因为引用完整性而抛出异常,则捕获它并软删除。我知道这看起来很花哨,但它是由另一个开发人员制作的,我不想弄乱他的代码。

他所做的是删除,然后如果它抛出异常,只需设置一个标志以“停用”记录。它确实运作良好。然而,当我接手时,我实施了 softDeleting 以减少花哨的东西。

现在,当它尝试强制删除时,它会抛出 QueryException 但不会落入 catch 块。我尝试将 Exception 更改为 \Exception、QueryException、Illuminate\Database\QueryException,但没有成功。有任何想法吗?

为了更好地说明它:

是这样的:

现在是这样的:

萤火虫回应:

这是来自 Illuminate/Database/Eloquent/Builder.php 的 forceDelete() 函数:

0 投票
0 回答
1075 浏览

java - 休眠恢复软删除的实体

我有一个实体

现在当我删除一些实体时,它实际上会设置 deleteFlag = 1 我怎样才能恢复实体?

谢谢