Несколько обновлений для одной и той же сущности - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть вопрос, связанный с Hibernate.Могу ли я выполнить несколько сохранений для одного объекта?Вы предвидите какие-либо проблемы с этим кодом?

// Я создаю новый объект типа Payment, который необходимо сохранить ...

 Payment p1 = new Payment();

// Устанавливаем некоторые значения ..

 p1.setName("abc");

// сохранить его в БД для получения идентификатора, который автоматически генерируется, чтобы передать его другой функции ..

 Payment savedP1 = paymentRepository.save(p1);

 int sum = calPaymentSum(savedP1.getId());

// установить дополнительные значения для того же объекта ...

 savedP1.setSum(sum);

// обновить тот объект, который был сохранен в БД ранее ..

 paymentRepository.save(savedP1);

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Если вы используете jpa-репозиторий данных Spring, существующая сущность автоматически обновит его, и ваша процедура верна.но в javaEE jpa вам нужно использовать метод слияния EntityManager для обновления существующего объекта.

paymentRepository.merge(savedP1);
0 голосов
/ 18 февраля 2019

Вам необходимо использовать;

 paymentRepository.update(savedP1);

Если вы используете метод save, он вставляется в таблицу с новым идентификатором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...