ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

rust orm有没有deleted_at

rust orm有没有deleted_at 有的Rust 生态中不少 ORM 都支持通过deleted_at字段来实现软删除Soft Delete功能。不过这通常不是所有 ORM 的标配功能具体实现和支持方式因库而异。我把几个主流方案整理了一下ORM / 库支持方式使用的列名主要特点SeaORM通过第三方扩展seaorm-soft-deletedeleted_at(固定)提供find_active、restore、hard_delete等方法功能完善。Diesel通过第三方扩展diesel-softdeletedeleted(布尔类型)通过宏扩展查询构建器提供soft_find、soft_filter等新方法。Gremlin ORM通过#[orm(soft_delete deleted_at)]属性可自定义列名支持通过属性宏直接启用软删除并自动从常规查询中排除已删除记录。Ferroquent通过#[ferroquent(soft_deletes)]属性推测为deleted_at一个受 Laravel Eloquent 启发的 ORM原生支持软删除的完整生命周期。SZ-ORM通过SoftDeleteTrait 和全局作用域未明确声称提供生产级软删除钩子支持。 如何选择如果你已经在使用 SeaORM 或 Diesel可以优先考虑对应的第三方扩展它们可以无缝集成到现有项目中。如果你是新建项目希望开箱即用可以关注像Ferroquent这种将软删除作为原生功能设计的 ORM。对于其他未明确支持的 ORM如rbatis等软删除逻辑可能需要通过手动编写update语句并在查询时添加deleted_at IS NULL条件来实现。你目前在使用哪个 ORM或者有特别关注的吗我可以帮你查查具体的配置方法。
返回列表