Grails3 逻辑删除(logical deletion)

本文介绍了GORM逻辑删除插件的基本概念、依赖项、特性及查询方式。该插件通过将数据标记为已删除而非实际删除来实现逻辑删除功能,并提供了一种简单的方法来查询这些被标记的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、介绍:“逻辑”删除(有时称为“软”删除)是一种删除,实际上并不删除相关数据,而是将数据标记为删除。将数据标记为已删除,因为缺省情况下排除查询中的数据的好处同时仍然保持在必要时/必要时检索数据的能力。

2、依赖:

要将GORM Logical Delete插件添加到应用程序,请将以下依赖项添加到build.gradle的依赖项块中:

compile "org.grails.plugins:gorm-logical-delete:2.0.0.BUILD-SNAPSHOT"

3、特性:

该插件提供了 可应用于域类gorm.logical.delete.LogicalDelete特性,以指示该域类应参与逻辑删除。该特征添加了一个名为deleted域类的布尔型持久性属性如果此属性的值为true,则表示记录已被逻辑删除,因此将默认排除查询结果。

import gorm.logical.delete.LogicalDelete

class Person implements LogicalDelete<Person> {
    String userName

    static mapping = {
        // the deleted property may be configured
        // like any other persistent property...
        deleted column:"delFlag"
    }
}

4、查询

大多数查询将默认自动从结果中排除逻辑删除的记录。

查询像这样创作...

results = Person.findAll {
    userName == 'Robert'
}

被执行,就好像它是这样写的...

results = Person.findAll {
    userName == 'Robert'
    deleted == false
}

如果您希望将逻辑删除的记录包含在查询结果中,则可能会将查询包装在调用中withDeleted,如下所示。

results = Person.withDeleted { Person.findAll() }

API连接

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值