Дублирование персистентности 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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