2016-07-28 46 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')