Дублирование персистентности Java OneToOneJAVA

Программисты JAVA общаются здесь
Anonymous
Дублирование персистентности Java OneToOne

Сообщение Anonymous »

У меня есть такая структура:

Код: Выделить всё

Entity1 ->
Entity2 ->
Entity3
Выполнение сохранения для Entity1 с возможностью сохранения как родительского, так и дочернего элемента.
Entity 3 уже сохранен в БД перед Entity1 и Entity2.
Итак, когда я сохраните Entity2, сначала я получаю Entity3 и устанавливаю его:

Код: Выделить всё

// Entity2 class
@OneToOne(fetch=FetchType.EAGER, optional=false, cascade = CascadeType.MERGE)
private Entity3 entity3;
Затем выполните сохранение Entity2:

Код: Выделить всё

    // entity3 is get form DB
entity2.setEntity3(entity3);
return entityManager().create(entity2);
После этого создается Entity1.
Проблема:
Когда я создаю Entity2, даже если я устанавливаю сущность3 из БД, она создает новый объект с новым идентификатором.
Поэтому вместо этого я дублирую объекты, чтобы иметь одинаковые...
Я пробовал:< /p>
  • используетсяentityManger().merge(entity3). -> выполняет обновление и делает его постоянным (двойная проверка)
  • выполняет сохранение сущности 2, затем обновляет с установленным объектом 3
  • проверяет метод равенства в Entity3, его базируется в ПК.
Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/790 ... plications

Вернуться в «JAVA»