【发布时间】:2019-12-06 14:18:22
【问题描述】:
我有一堆由dbicdump / DBIx::Class::Schema::Loader从我的数据库架构创建的 DBIx::Class 结果类
我需要在其中一个表中添加一个is_deleted 布尔列,并在所有现有搜索和联接中过滤掉已删除的记录。
不幸的是,在庞大的 perl 应用程序中有 30 或 40 个位置直接使用相关表,并且至少与通过 prefetch 或 join 加入到它的位置相同数量的位置归因于 search()。手动更改它们是可能的,但非常耗时。
有没有办法将默认的WHERE 子句添加到SELECT 来自或JOIN 到特定表的所有查询?
我想通过某种方式调用resultset('MyTable')->search({},{}) 并将WHERE is_deleted = 0 添加到所有查询中。
另外,在使用 prefetch => [qw(my_table)], 时应用相同的 is_deleted = 0 过滤器。
【问题讨论】:
标签: perl dbix-class