将谓词/过滤器附加到表的所有查询

时间:2013-12-20 19:10:42

标签: sqlalchemy

SQLAlchemy是否允许我们定义表(或查询),以便特定谓词自动附加到该表上的所有查询中?查询甚至可以通过关系/关联来实现。我试图避免为每个模块中的每个查询表达式添加一个filter()。

实施例: 表T1有列col1,我希望该表上的每个sqla查询在向db提交sql之前自动添加一个额外的谓词col1 ='Y'。

我希望涉及t1对象的结果查询如下:
从t1中选择..其中......和 t1.col1 ='Y'
选择..从t2加入t1在t2.x = t1.x,其中......和 t1.col1 ='Y'

通过在表或关系的xml映射中添加 WHERE =“col1 ='Y'”属性,这在休眠中很容易实现。 (至少在5年前这是如何在hibernate中完成的)。

我在SQLA版本0.9中使用autoload = True的声明式基础