Как Nhibernate делает со вставкой, обновлением, удалением - PullRequest
1 голос
/ 14 июля 2011

Кто-нибудь может объяснить, как ведет себя NHibernate в случае:

  1. Вставить
  2. Обновление
  3. Удалить

в случае, если коллекция «Родитель / Дитя» с инверсией - неинверсия, каскадное, каскадное удаление всех сирот.

Я хочу знать правила, которые следуют для выполнения каждого случая выше.

Заранее спасибо

1 Ответ

2 голосов
/ 14 июля 2011

Попробуйте посмотреть здесь:

Каскады NHibernate: различаются все, все-удалить-сирот и сохранить-обновить

или здесь:

Nhibernate Cascade

также здесь:

Руководство по применению NHibernate Definitive Cascade

обновление

Здесь вы можете найти отличное объяснение inverse :

Обратный атрибут в NHibernate

И это каскадные различия:

  1. cascade = "none" , по умолчанию, сообщает Hibernate об игнорировании ассоциации.
  2. cascade = "save-update" сообщает Hibernateперемещаться по ассоциации, когда транзакция фиксируется и когда объект передается в save () или update (), и сохранять вновь созданные экземпляры временного режима и сохранять изменения в отдельных экземплярах.
  3. cascade = "delete" говорит Hibernate перемещаться по ассоциации и удалять постоянные экземпляры, когда объектassed to delete ().
  4. cascade = "all" означает каскадное сохранение и обновление и удаление, а также вызовы выселения и блокировки.
  5. cascade = "all-delete-orphan" означает то же самое, что и cascade = "all", но, кроме того, Hibernate удаляет любой экземпляр постоянного объекта, который был удален (разыменован) из ассоциации (например, из коллекции).).
  6. cascade = "delete-orphan" Hibernate удалит любой постоянный экземпляр объекта, который был удален (разыменован) из ассоциации (например, из коллекции).
...