2011-12-31 2 views

ответ

3

Это зависит.

Если у вас есть OneToMany, а таблица адресов имеет внешний ключ для человека, удаление адреса будет работать. Если пользователь и его адреса были загружены в сеанс до удаления адреса, его список адресов будет содержать удаленный адрес. Вы должны сами поддерживать все ассоциации. Если адреса пользователя еще не загружены, когда они будут загружены, список не будет содержать удаленный адрес, очевидно, поскольку Hibernate не найдет его в базе данных.

Если OneToMany использует таблицу соединений, или если это ManyToMany, то удаление адреса без его удаления из списка адресов всех лиц, ссылающихся на него, приведет к исключению, так как таблица соединений будет продолжать ссылаться адрес, который вы хотите удалить. Ограничение внешнего ключа - это то, что вызовет исключение.