私のスパでは、エンティティをデータベースに保存する前に、複雑なオブジェクト ツリーをクライアントに送信し、ユーザーにデータを入力させる必要があります。したがって、エンティティはその時点ではデータベースに存在しません。オブジェクト ツリーはサーバーのメモリ内に構築され、 を呼び出すだけで取得されますbreeze.EntityQuery.from("ComplexeObjectTree")
。エンティティは、ノックアウトを介して Web フォームにバインドされます。ユーザーは、保存ボタンを押す前に、まず必要なデータを入力します。フォームのエンティティ プロパティの一部はオプションであり、デフォルト値があります。ユーザーがこれらのプロパティを変更しない場合、beeze は変更を検出せず、所有するエンティティを変更セットに入れません。それらは変更されていないとマークされていますが、それらの id 値はまだです-1
(まだ保存されていません)。ただし、データベースの保存は、関係を含むオブジェクト ツリー内のすべてのエンティティがサーバーに送信された場合にのみ正常に実行できます (データベースの制約を尊重するため)。保存操作の結果、1 つまたは複数の挿入ステートメントが生成されます。これは、クライアントでは変更されていないが、データベースにとっては新しいエンティティに対しても同様です ( id==-1
)。このユースケースをどのように処理できますか? 追加済みとしてマークされた主キーを持つすべてのエンティティをid==-1
、デフォルトで保存変更セットの一部にするべきではありませんか?
どんな助けでも大歓迎です、
アンドレアス