31

SQLAlchemy セッションからオブジェクトをアンバインドすることは可能ですか?

以前は使用しdeepcopyていましたが、アソシエーション プロキシを使用している場合はこれができないように思われるため、オブジェクトをセッションから削除して別のセッションに追加する別のソリューションを探しています。

4

1 に答える 1

42

Expunge は、セッションからオブジェクトを削除し、永続的なインスタンスを切り離された状態に送り、保留中のインスタンスを一時的な状態に送ります。

session.expunge(obj1)

更新: 切り離されたオブジェクトは、を使用して同じセッションまたは別のセッションにアタッチできます。

session2.add(obj1)

または合併

session2.merge(obj1)

merge() を使用すると、指定されたインスタンスはセッション内に配置されず、別のセッションに関連付けたり、切り離したりできます。merge() は、その起源や現在のセッションの関連付けに関係なく、あらゆる種類のオブジェクト構造の状態を取得し、その状態をセッション内に配置するのに非常に役立ちます。

于 2012-06-26T18:31:22.023 に答える