overwrite
コンテキストにマージ ポリシーを適用すると、対多関係のマージ結果が混乱することがあります。例えば:
元の値:
属性/関係 | タイプ | 価値 |
---|---|---|
名前 | 弦 | 5月 |
年 | 整数 | 20 |
趣味 | NSOrderedSet | 【ウォーキング・読書】 |
以下のように属性の値のみを変更した場合、コンテキスト 1 で行われた変更はコンテキスト 2 によって完全に上書きされます。
// context 1
entity.name = "May2"
entity.age = 21
// context 2
// mergePolicy = .overwrite
entity.age = 22
// result:
// name: "May", age: 22
ただし、以下のように対多関係を更新するとhobbies
、マージ結果は ではなく空になり[reading]
ます。
質問: この場合、対多関係が上書きされない理由を誰か説明できますか? ありがとう!
// context 1
entity.hobbies = [walking]
// context 2
// mergePolicy = .overwrite
entity.hobbies = [reading]
// result:
hobbies: []