StatelessSessionを使用してエンティティを一括更新しようとしています。
ステートレスであるため、NHibernateは保存時に子エンティティを自動カスケードしません。
子エンティティに変更を加えたくないので、これは問題ありません。
残念ながら、保存すると、NHibernateは次のように不平を言います。
"オブジェクトは保存されていない一時インスタンスを参照します-フラッシュする前に一時インスタンスを保存します。タイプ:MyAssembly.MyRandomEntity、エンティティ:Castle.Proxies.MyRandomEntityProxy"
もちろん、子エンティティを更新しようとすると、次のエラーが発生します。
「次の永続機能はありません:Castle.Proxies.MyRandomEntityProxy」
ご覧のとおり、子エンティティはロードされていないため、プロキシです。必要ない、更新したくない…でも、更新してもどうしたらいいのかわからない。
基本的に一時的な子エンティティを無視するように指示して、この問題を解決する方法はありますか?
アップデート
親オブジェクトの子エンティティのマッピングは次のとおりです。
<many-to-one class="MyAssembly.Flight, MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="OutboundFlight">
<column name="OutboundFlightId" />
</many-to-one>
子エンティティのId列は次のとおりです。
<id name="Id" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" unsaved-value="0">
<column name="FlightId" />
<generator class="assigned" />
</id>