2016-07-28 45 views
1

我正在使用SQL Alchemy ORM并且有一些类/表,每个类都可能有一些自定义查询。比方说,我想添加Fruitwith_seed的过滤可能性给我只有水果种子,并且Cutleryis_sharp过滤方法is_sharp给我只有锋利的餐具。我想定义这些过滤器作为扩展到Query对象,我想在同一事务中使用它们:您可以扩展SQLAlchemy查询类,并在同一会话中使用不同的SQLAlchemy查询类吗?

def delete_sharp_cutlery_and_seedy_fruits(session_factory): 
    session = session_factory() 
    session.query(Fruit).with_seed().delete(synchronize_session='fetch') 
    session.query(Cutlery).is_sharp().delete(synchronize_session='fetch') 
    session.commit() 

这可能吗?


这与问题here有关。但是那里的解决方案需要为不同的查询类创建不同的会话。

回答

0

你可以通过会话就能够查询构造

CustomQuery(entities=[Fruit], session=session).with_seed().delete(synchronize_session='fetch')