実際には、私が働いていれば有効な解決策がありますが、それは事実上、休止状態のメカニズムの一部を殺します。
「一時エンティティ」の場合、NH は挿入/選択エンジンとしてのみ機能します。削除と更新は、NH の ORM 部分が便利な別のユーティリティによって行われます。
少数の一時的なエンティティしかない場合は、nhibernate のみを使用できますが、状態の関係が有効であることを確認するために独自のコードを作成する準備をしてください。私たちは最初の試行でそのルートをたどりましたが、時間エンティティの数が増え始めた後、メカニズムは事実上壊れました。
現在、挿入には特別なツールは必要ありません。値を適切な日時プロパティに配置するだけで設定は完了です。フィルターを使用して選択を実装します(例があるため、NH ref の 16.1 を確実に確認しますが、条件で BETWEEN を使用してはなりません)。. それを行うには、 http://savale.blogspot.com/2010/01/enabling-filters-on-mapped-entities.htmlで私の投稿を確認してください。
マッピングで(フィルターの代わりに)「where」句を指定しても機能する可能性がありますが、まだ試したりテストしたりしていません。マッピングでマッピングされた「where」がパラメーターをサポートしていないことを理解しています(少なくとも公式ではありません)。
余談ですが、更新/削除にカスタム ツールを使用する理由は、Richard Snodgrass の一時データベースに関する本を読むと明らかになりますhttp://www.cs.arizona.edu/~rts/publications.html
質問に直接答えるには、NULL _end 値と遠い将来の値の両方が機能します (ただし、ISNULL で確認する必要がないため、クエリが簡単になる NOT-NULL ソリューションをお勧めします)。
更新の場合、元のエンティティのクローンを効果的に作成し、元のエンティティの _end を現在に設定してから、クローンに移動して関連するプロパティを変更し、_start を現在に変更し、_end を将来の値に変更します。