Spring jpa отключить слияние - PullRequest
       44

Spring jpa отключить слияние

1 голос
/ 03 августа 2020

Я хочу отключить слияние в репозитории jpa. Должно быть возможно только создавать новые записи и запрещать обновление старых.
Итак, как отключить обновление записей для репозитория, если я расширяюсь от JpaRepository?

Ответы [ 2 ]

0 голосов
/ 03 августа 2020
  • Создание неизменяемой сущности может остановить изменения, происходящие с управляемыми сущностями, и в результате никакие изменения не будут распространяться внутри транзакции.

  • Однако это не останавливает hibernate обновляет запись базы данных, если вы передали неизменяемую запись с назначенным идентификатором, и она уже существует в db.

  • Итак, я думаю, вы можете заглянуть в @PreUpdate entity listener и выбросить исключение. Поэтому, если кто-то попытается обновить, это вызовет исключение, и обновление не произойдет.

  • Но лучший способ - создать службу, которая скрывает репозиторий и

  • Служба выполняет find перед save, чтобы избежать второй точки

  • Сделать объект неизменяемым, чтобы гарантировать первую точку.

0 голосов
/ 03 августа 2020

То, что вам нужно, это в основном неизменяемая сущность, удалите сеттеры из своей сущности и используйте построители для создания новых сущностей.

...