- 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
.Поэтому я подумал, что мог бы иметь два похожих подкласса, один с аннотацией, другой без и переключаться между ними в соответствии с флагом функции.
Будет ли это работать, или есть лучший способ программно включить / отключить оптимистическийзамок