Scenario: two callers load the same order (both see version N), the first saves (version becomes N+1), then the second — still holding version N — tries to save. result: org.springframework.dao.OptimisticLockingFailureException: Failed to update versioned entity with id '1' (version '0') in table ["JDBC_ORDER"]; Was the entity updated or deleted concurrently? @Version on the JDBC side behaves the same as @Version under JPA: the UPDATE's WHERE clause includes "and version = :expectedVersion", zero rows match, and Spring Data JDBC turns that into OptimisticLockingFailureException rather than silently doing nothing.