Код: Выделить всё
Entity1 ->
Entity2 ->
Entity3
Entity 3 уже сохранен в БД перед Entity1 и Entity2.
Итак, когда я сохраните Entity2, сначала я получаю Entity3 и устанавливаю его:
Код: Выделить всё
// Entity2 class
@OneToOne(fetch=FetchType.EAGER, optional=false, cascade = CascadeType.MERGE)
private Entity3 entity3;
Код: Выделить всё
// entity3 is get form DB
entity2.setEntity3(entity3);
return entityManager().create(entity2);
Проблема:
Когда я создаю Entity2, даже если я устанавливаю сущность3 из БД, она создает новый объект с новым идентификатором.
Поэтому вместо этого я дублирую объекты, чтобы иметь одинаковые...
Я пробовал:< /p>
- используетсяentityManger().merge(entity3). -> выполняет обновление и делает его постоянным (двойная проверка)
- выполняет сохранение сущности 2, затем обновляет с установленным объектом 3
- проверяет метод равенства в Entity3, его базируется в ПК.
Подробнее здесь: https://stackoverflow.com/questions/790 ... plications
Мобильная версия