从INSERT语句获取Cassandra中自动生成的UUID

时间:2019-05-17 15:57:12

标签: cassandra

用例:

我有一个RESTful API,可将数据插入Cassandra,并将新条目的ID返回给用户。我正在使用Cassandra中的uuid() ID生成器来填充ID。

问题:

INSERT语句不返回生成的ID,但是我描述的RESTful API似乎是一个常见的用例。如何获得该确切条目的UUID?从理论上讲,我可以按照SELECT id FROM table WHERE partition_key = ? ORDER BY id DESC LIMIT 1;的方式做一些事情,但是如果两次写操作在同一时间发生,那似乎会引入竞争条件。

2 个答案:

答案 0 :(得分:3)

这是不可能的,只需要自己生成UUID并插入即可。只需使用库作为您的语言即可。如果您将Java驱动程序用于Cassandra,则可以使用UUIDs类中的函数:random-生成随机UUID(类型4),或为timeBased生成当前时间的UUID(类型1)。

答案 1 :(得分:0)

我知道您没有声明要使用Spring Data,但是我可以肯定地说,如果您使用Spring Data并在插入时调用.save(),它将返回保存的实体,包括它的自动生成的ID。

请参见以下示例作为参考:https://www.baeldung.com/spring-data-crud-repository-save