Двунаправленная ассоциация гибернации

В чем разница между inverse="true" и constrained="true".

Разве оба не используются, чтобы сделать ассоциацию двунаправленной? Также не оба ли добавляют ограничение внешнего ключа, связывающее первичный ключ в двух таблицах?

Я смущен. Пожалуйста, направь меня.


person sid    schedule 06.04.2016    source источник


Ответы (1)


constrained - используется для отложенной загрузки однозначных отношений. Поскольку они реализуются с помощью общих первичных ключей, NHibernate не знает, есть ли запись в другой таблице, до того, как она была извлечена. С ограниченным вы сообщаете NHibernate, что всегда ожидается запись, поэтому он может создать прокси. См. это сообщение в блоге Айенде Рахиен.

С инверсией вы сообщаете NHibernate, что отношение «один ко многим» уже хранится на стороне «многие», поэтому нет необходимости хранить коллекцию на одной стороне. Я попытался объяснить это здесь: Когда использовать inverse = false в отношениях NHibernate / Hibernate OneToMany?

person Stefan Steinegger    schedule 06.04.2016