小编Luk*_*wny的帖子

如何确保数据库中不存在生成的id

我想为实体生成唯一的id并将实体存储在Cassandra数据库中(仅当已生成id的实体不存在时).

在id生成之后,我检查db是否有任何具有相同id的实体.如果不是,则保存实体.MyService类的示例代码:

synchronized (MyService.class) {
    do {
        id = generateId();
    } while (myDao.find(id) != null);
    sampleObject.setId(id);
    myDao.create(sampleObject);
}
Run Code Online (Sandbox Code Playgroud)

在MyDao中保存我正在使用的实体:

cassandraOperations.insert(sampleObject);
Run Code Online (Sandbox Code Playgroud)

确保数据库中不存在已生成的id的最佳实践是什么?我觉得这个同步块不是最有效的解决方案.或者也许还有其他方法可以确保只有在数据库中没有具有相同ID的实体时才插入实体?

java concurrency cassandra spring-boot

0
推荐指数
1
解决办法
558
查看次数

标签 统计

cassandra ×1

concurrency ×1

java ×1

spring-boot ×1