Как программно включить / отключить оптимистическую блокировку в Spring Data JPA? - PullRequest
0 голосов
/ 20 сентября 2019
  • java: 8
  • spring-data-jpa: 2.0.7.RELEASE
  • hibernate: 5.3.0.Final

Мы используемфлаги функций (с использованием Togglz ) для простого включения / отключения функций в нашем приложении без повторного развертывания.

Недавно я реализовал оптимистическую блокировку для одной из наших таблиц, и мне было интересно,Я мог бы применить эту концепцию к оптимистической блокировке.Я понимаю, что это не «особенность» как таковая, но это все же значительное изменение.

Учитывая, что включение оптимистической блокировки в Spring Data JPA состоит в основном из поля @Version и обработки ObjectOptimisticLockingFailureException, в моемПо-моему, было бы не сложно включить / отключить это программно и сказать Spring, чтобы он не управлял автоматически полем @Version, но я нигде не нашел его документированным.

В https://stackoverflow.com/a/42898080/1042273, намекнул, что я мог бы использовать @OptimisticLocking(type = OptimisticLockType.NONE), пока @Version находится в @MappedSuperclass.Поэтому я подумал, что мог бы иметь два похожих подкласса, один с аннотацией, другой без и переключаться между ними в соответствии с флагом функции.

Будет ли это работать, или есть лучший способ программно включить / отключить оптимистическийзамок

...