Обновить объект на другой, используя Panache JPA

#jpa #sql-update #quarkus #quarkus-panache

#jpa #sql-обновление #quarkus #quarkus-panache

Вопрос:

Я работаю с хранилищами PanacheRepositories в Quarkus. В настоящее время я хочу реализовать эту функцию update(X x) . По сути, я хочу, чтобы функция проверяла, существует ли объект y id==x.id , имеющий exists, и обновляла его x , однако я не могу понять, возможно ли это без необходимости глубокого копирования каждого атрибута из x into y . Я не хочу этого, потому что объект огромен.

Есть ли какой-нибудь способ сделать что-то вроде

 MyEntity y = repository.findById(x.id);
if(y != null){
  y = x;
  repository.persist(y)
}
  

без отсоединения объекта?

Ответ №1:

Я не понимал, что PanacheRepository это просто наложение EntityManager , которое обладает нужной мне функциональностью. Так что я мог бы просто ввести EntityManager и использовать merge(x) , который сделал именно то, что я хотел