엔티티에 대한 고유 ID를 생성하고 엔티티를 카산드라 데이터베이스에 저장하고자합니다 (생성 된 ID가있는 엔티티가 이미 존재하지 않는 경우에만).생성 된 ID가 데이터베이스에 존재하지 않도록하는 방법
id 생성 후 동일한 ID를 가진 엔티티가 있으면 db를 체크인합니다. 그렇지 않으면 엔티티가 저장됩니다. 이면 MyService 클래스의 샘플 코드 : MyDao에서
synchronized (MyService.class) {
do {
id = generateId();
} while (myDao.find(id) != null);
sampleObject.setId(id);
myDao.create(sampleObject);
}
내가 사용하고 개체를 저장 :
cassandraOperations.insert(sampleObject);
이미 생성 된 ID가 데이터베이스에 존재하지 않음을 보장하는 가장 좋은 방법은 무엇입니까? 이 동기화 블록이 가장 효율적인 솔루션이 아니라고 생각합니다. 또는 데이터베이스에 동일한 ID를 가진 엔티티가없는 경우에만 엔티티가 삽입되도록하는 다른 방법이 있습니까?
확인 [이] (https://stackoverflow.com/questions/3935915/how-to-create-auto-increment-ids- in-cassandra) – Russiancold
uuid를 id로 사용합니까? 그렇다면 충돌 가능성은 0입니다. 따라서 존재 여부를 확인할 필요조차 없습니다. – rvit34
제 경우에는 ID가 영숫자 문자열입니다. UUID를 사용하더라도 매우 낮은 충돌 진행 가능성이 있습니다. –