Мне любопытно узнать, как Hibernate справится со следующей ситуацией.
Допустим, у нас есть сущность User
, у которой есть свойство country
, установленное для каскадного сохранения:
public class User {
@ManyToOne(cascade=CascadeType.PERSIST)
protected Country country;
// ...
}
Теперь, что если мы назначим отдельный Country
объект для User
...
user.setCountry(someDetachedCountry);
... но Country
с таким же именем уже существует в текущем сеансе?
Будет ли зафиксирован сбой с исключением, или он будет просто использовать идентификационную информацию отдельной страны, как если бы она была на сессии? В последнем случае, попытается ли Hibernate каскадно сохранить свойства отсоединенных Country
, если для какого-либо из них установлено каскадное изменение?