Обновить сущность в jpa - PullRequest
2 голосов
/ 30 июня 2019

Как мне обновить все поля в Entity без запроса sql для записи:

(update Entity u set u.m1= ?1, u.m2= ?2, ... where u.id = ?3)

В классе содержится более 20 полей, и если я пишу SQL-запрос, это займет много времени.И я часто добавляю новые поля

Могу ли я обновлять все автоматически?Например:

entityRepo.update(entity);

Если я сделаю entityRepo.save();, создайте ненужную запись в базе.

Ответы [ 2 ]

2 голосов
/ 30 июня 2019

Это альтернатива @ davidxxx's answer .

Если транзакция, с которой была выбрана сущность, еще не закрыта (т.е. сущность все еще присоединена), вы можете просто обновитьjava-объект и изменения будут зафиксированы в базе данных при фиксации транзакции.

2 голосов
/ 30 июня 2019

Нет, вы можете использовать JpaRepository.save(S entity), который сохраняет или обновляет сущность, если она существует.
Чтобы достичь этого, убедитесь, что у сущности есть значение JPA @Id, прежде чем вызывать save(), иначе будет действительно создана новая запись.

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