2016-07-28 28 views
1

私はSQL Alchemy ORMを使用しており、いくつかのカスタムクエリを持つ可能性のあるいくつかのクラス/テーブルを持っています。たとえば、テーブルFruitに、with_seedという種子の果実を与え、テーブルCutleryにフィルタリングの方法is_sharpを追加して、鋭い刃物だけを与えたいとします。私はQueryオブジェクトの拡張機能として、これらのフィルタを定義したい、と私は同じトランザクションでそれらを使用したい:SQLAlchemy Queryクラスを拡張し、同じセッションで異なるクラスを使用できますか?

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') 
を照会するには、セッションを渡すことができます
関連する問題