ググってもなかなかヒットしなかったので書き残す。
Hibernateは楽観的排他エラー検出時にorg.hibernate.StaleObjectStateExceptionをthrowするが、Spring環境ではorg.springframework.orm.ObjectOptimisticLockingFailureExceptionにラップして再throwされる。
参考:
Spring+Hibernate連携時の主なExceptionまとめ
SpringBootならObjectOptimisticLockingFailureExceptionをCatchすればいいですよ。
ORMがHibernateから別なORMに切り替わったとしても、Catch節を書き直さなくて済むようにラッピングしているのです。