diff --git a/ordinis-rest-api/src/main/java/cloud/nstart/terravault/ordinis/restapi/service/DictionaryRecordService.java b/ordinis-rest-api/src/main/java/cloud/nstart/terravault/ordinis/restapi/service/DictionaryRecordService.java index 3057c93..4dfc784 100644 --- a/ordinis-rest-api/src/main/java/cloud/nstart/terravault/ordinis/restapi/service/DictionaryRecordService.java +++ b/ordinis-rest-api/src/main/java/cloud/nstart/terravault/ordinis/restapi/service/DictionaryRecordService.java @@ -115,7 +115,10 @@ public class DictionaryRecordService { UUID previousRecordId = current.getId(); current.setValidTo(newValidFrom); - repository.save(current); + // saveAndFlush обязателен: иначе Hibernate отложит UPDATE до commit, INSERT новой + // записи пойдёт первым → exclusion constraint dictionary_records_no_overlap бьёт, + // т.к. старая ещё имеет valid_to=FAR_FUTURE и tstzrange'и пересекаются. + repository.saveAndFlush(current); var next = new DictionaryRecord( UUID.randomUUID(),