标签: soft-delete

与Nhibernate Session.Get和Session.CreateCriteria的区别

Nhibernate Session.Get和Session.CreateCriteria有什么区别?

我的故事是:

在我们的产品中,我们通过添加一个接口ISoftDeletable实现了softDeletion,实现此接口的每个类都有deletedDate和deletedBy字段.我们还有AuditableEntity类,这意味着实现它的每个类都有:createdDate,createdBy,modifiedDate,modifiedBy.

以下是消息来源:

public class SaveUpdateEventListener : DefaultSaveEventListener
{

    private readonly ISecurityContextService securityContextService;

    public SaveUpdateEventListener(ISecurityContextService securityContextService)
    {
        this.securityContextService = securityContextService;
    }

    protected override object PerformSaveOrUpdate(SaveOrUpdateEvent @event)
    {
        this.PrepareAuditableEntity(@event);
        return base.PerformSaveOrUpdate(@event);
    }


    private void PrepareAuditableEntity(SaveOrUpdateEvent @event)
    {
        var entity = @event.Entity as AuditableEntity;

        if (entity == null)
        {
            return;
        }

        if (this.securityContextService.EdiPrincipal == null)
        {
            throw new Exception("No logged user.");
        } 

        if (entity.Id == 0)
        {
            this.ProcessEntityForInsert(entity);
        }
        else
        {
            this.ProcessEntityForUpdate(entity);
        }
    }


    private void ProcessEntityForUpdate(AuditableEntity entity)
    {
        entity.ModifiedBy …
Run Code Online (Sandbox Code Playgroud)

nhibernate soft-delete

3
推荐指数
1
解决办法
1859
查看次数

物理删除在laravel5中启用softdelete的模型?

SoftDeletes在Laravel5中使用模型.

但在某些情况下(保持历史记录没用),我想做物理删除(从表中删除行)而不是softDelete.

    class PaymentInvoices extends Model {

    use SoftDeletes;
}
Run Code Online (Sandbox Code Playgroud)

有没有强制物理删除的方法?

php mysql soft-delete laravel laravel-5

3
推荐指数
1
解决办法
729
查看次数

如何在 Laravel 5.8 Eloquent 模型中禁用软删除

在我的项目中,所有模型都扩展了BaseModel类,SoftDeletes默认情况下使用trait。但在某些特定情况下,例如在课堂上,ShouldHardDelete我不希望我的数据库记录被软删除。让我们假设,我不能否认扩展BaseModel.

我应该在我的ShouldHardDelete班级中进行哪些更改以防止它使用软删除?

oop soft-delete laravel eloquent laravel-5

3
推荐指数
1
解决办法
2655
查看次数

在Yii中隐藏软删除的项目

我想知道的是:在Yii中是否可以在模型中添加某种属性,因此只显示属性isdeleted设置为的项目0

所以我正在寻找一种方法,Yii会忽略这些项目的实例...类似于:

public function rules()
{
    return array(
        ...
        array('isdeleted', 'shouldEqualTo=>0'),
        ...
    );
}
Run Code Online (Sandbox Code Playgroud)

我觉得乱搞rules()将是一种方式,但它不起作用或我做错了...

php soft-delete yii

2
推荐指数
1
解决办法
814
查看次数

实体框架5软删除

我试图阻止我的数据库表上的任何删除.目前正在使用Entity Framework 5.首先,这是我的代码,

public override int SaveChanges()
    {
        var Changed = ChangeTracker.Entries();
        if (Changed != null)
        {
            foreach (var entry in Changed.Where(e => e.State == EntityState.Deleted))
            {
                entry.State = EntityState.Unchanged;
            }
        }

        return base.SaveChanges();
    }
Run Code Online (Sandbox Code Playgroud)

我已经设法以这种方式阻止它.当我使用EF的Remove方法时它不再工作了.但是,我想要实现的是,当我使用给定ID的remove方法时,我想设置isDeleted(这是我所有数据库中的(位)列表)值为false.目前,我迷失在互联网上的文件和共享代码中.

谢谢

c# entity-framework soft-delete

2
推荐指数
1
解决办法
2247
查看次数

如何在Laravel 4中查询和过滤软删除的Eloquent模型

使用来自https://github.com/snipe/laravel4-starter的 Laravel 4.1入门套件,我有两个模型:类别和兴趣.两者都是软删除的.我希望索引视图根据用户的意愿显示3个不同的列表:"全部显示","显示已删除"和"显示未删除".一切都很好,直到我在它们之间添加了HasMany/BelongsTo关系.

楷模:

class Category extends Elegant
{
    protected $softDelete = true;

    public function interests()
    {
        return $this->hasMany('Interest');
    }
}

class Interest extends Elegant
{
    protected $softDelete = true;

    public function category()
    {
        return $this->belongsTo('Category');
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当视图调用$interest->category->name属于软删除类别的兴趣时,一切都会爆发ErrorException: Trying to get property of non-object.我怀疑这是因为它$interest->category是NULL,因为它已被软删除,因为它没有被加载.

控制器:

class InterestsController extends AdminController
{

    public function getIndex()
    {
        $showDisabled = Utility::GetShowDisabled();

        switch ($showDisabled) {
            case 'only':
                // How to load *only* soft-deleted Interest with their categories …
Run Code Online (Sandbox Code Playgroud)

soft-delete eager-loading laravel eloquent laravel-4

2
推荐指数
1
解决办法
4346
查看次数

如何使用 symfony 2 使工作可软删除且唯一的实体

我有软可删除和唯一实体字段。效果很好,但是...

如果记录被“软删除”删除,我将无法创建相同的记录。我认为这是因为数据库中的记录没有真正删除。但我需要这样做。

那么最好的方法是什么?

  1. 记录全部删除?那么 softdeletable 是一个不错的选择吗?
  2. 找到一种方法,如果记录被软删除,我可以再次创建相同的记录

感谢您的建议

unique soft-delete symfony

2
推荐指数
1
解决办法
2818
查看次数

Django,级联移动到单独的表而不是级联删除

我想保留数据 delete

而不是soft-delete(使用is_deleted字段),我想将数据移动到另一个表(对于已删除的行)

/sf/answers/1828814921/

我也不知道这个策略的名称是什么.叫档案?两表删除?

为了使这项工作,

我需要能够做到

  1. 对于给定对象(将被删除),查找具有该对象的外键或一对一键的所有其他对象.(这可以通过/sf/answers/162053741/完成,实际上比这更难,代码不够)

  2. 插入一个新对象并让#1中找到的所有对象指向这个新对象

  3. 删除对象

(essentiall我正在做级联移动而不是级联删除,1~3步应该以递归方式完成)

这将是最方便的,以弥补这方面,它支持一个mixin delete()undelete()一个对象和一个查询集.

有人创造过这样的吗?

database django soft-delete

2
推荐指数
1
解决办法
901
查看次数

模型上的SoftDeletes会破坏动态属性

TLDR:当SoftDeletes特征包含在我的父模型中时,我不再将父模型的软删除实例作为子动态属性.如何才能做到这一点?


我已经定义了几个基本模型,如下所示:

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Builder;

class User extends Model
{
    use SoftDeletes;

    public function posts()
    {
        return $this->hasMany("App\Post");
    }
}

class Post extends Model
{
    public function user()
    {
        return $this->belongsTo("App\User");
    }

    public function scopePending(Builder $query)
    {
        return $query->whereNull("pending");
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我想列出待处理的帖子,所以我这样做:

<?php
namespace App\Controllers;

use App\Post;

class PostController extends Controller
{

    public function index()
    {
        $posts = Post::pending()->get();
        return view("post.index", ["pending"=>$posts]);
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,在我看来:

@foreach($pending as $post)
    {{ $post->title }}<br/>
    {{ …
Run Code Online (Sandbox Code Playgroud)

php soft-delete laravel eloquent laravel-5

2
推荐指数
1
解决办法
342
查看次数

子表的休眠软删除

假设我们有两个实体Customer和AppUser,它们是一对多关系。

客户实体:

@Entity
@Table(name = "CUSTOMER")
//Override the default Hibernation delete and set the deleted flag rather than deleting the record from the db.
@SQLDelete(sql="UPDATE customer SET deleted = '1' WHERE id = ?")
//Filter added to retrieve only records that have not been soft deleted.
@Where(clause="deleted <> '1'")
public class Customer implements java.io.Serializable {
    private long id;
    private Billing billing;
    private String name;
    private String address;
    private String zipCode;
    private String city;
    private String state;
    private String notes;
    private …
Run Code Online (Sandbox Code Playgroud)

java hibernate one-to-many soft-delete

2
推荐指数
1
解决办法
3436
查看次数