2

私はAnimalやCatのような継承マッピングを持っています。どちらのクラスにも独自のテーブルがあります(joined-subclassとしてマップされます)。NHibernateのsave(またはpersist)メソッドにCatオブジェクトを指定すると、NHibernateがAnimalオブジェクトのみを保存しようとしています。

ドキュメントを読んだことから、私はそれsession.Save("Animal", catObject)が私が望むことをするはずだと思いましたが、それはまったく同じように動作しsession.Save(catObject)ます。

ただし、新しいAnimalオブジェクトを作成し、Catオブジェクトから値をコピーすることはできますが、それは時間とメモリの浪費になります。

私が望むことを達成する他の可能性はありますか?

4

1 に答える 1

2

それを行うことはできません.IMOが必要な場合は、設計上の問題があります。を保存する必要がある場合は、または他のタイプのインスタンスではなく、インスタンスを操作Animalする必要がありますAnimalCat

また、@PaulPhillips が言うように、1 つのオブジェクトを作成する際のパフォーマンス/メモリ コストは無視できる場合がほとんどです。

于 2012-07-12T14:41:56.183 に答える