Ответ 1
Да. Похоже, что "save-update" - это то, что вы хотите в этом случае.
Я никогда не нашел подробного объяснения каждого варианта каскада в документации, но использовал этот сообщение в блоге от Ayende в качестве ссылки.
- none - не делайте никаких каскадов, позволяйте пользователям самостоятельно обрабатывать их.
- сохранить-обновить - когда объект будет сохранен/обновлен, проверьте ассоциации и сохраните/обновите любой требующий его объект (включая сохранение/обновление ассоциаций во многих сценариях).
- удалить - при удалении объекта удалите все объекты в ассоциации.
- delete-orphan - при удалении объекта удалите все объекты в ассоциации. В дополнение к этому, когда объект удаляется из ассоциации и не связан с другим объектом (осиротевшим), также удаляйте его.
- all - когда объект сохраняет/обновляет/удаляет, проверяет ассоциации и сохраняет/обновляет/удаляет все найденные объекты.
- all-delete-orphan - когда объект сохраняет/обновляет/удаляет, проверьте ассоциации и сохраните/обновите/удалите все найденные объекты. В дополнение к этому, когда объект удаляется из ассоциации и не связан с другим объектом (осиротевшим), также удаляйте его.