### 17.1 P2 — insert-first 주장이 Spring Data 의 `save` 계약과 어긋난다. 그리고 테스트 이중이 그 차이를 가린다 어댑터는 이렇게 쓴다. ```java try { repository.save(GrpcOperationLedgerEntity.claim(identity, requestFingerprint, now)); return Optional.empty(); // 내가 이겼다 } catch (DataIntegrityViolationException alreadyClaimed) { return repository.findById(identity.storageKey()).map(entity -> entity.toRecord(identity)); } ``` 전제는 `save` 가 INSERT 이고, 같은 신원의 두 번째 청구가 유니크 제약을 건드린다는 것이다.