Spring boot cassandra@table动态更改名称

Spring boot cassandra@table动态更改名称,spring-boot,cassandra,spring-data,Spring Boot,Cassandra,Spring Data,我有多个API使用者将类似数据发布到我的API中。我的API需要使用这些数据,并将数据持久化到由使用者名称标识的cassandra表中。例如,consumername_表名 我的spring引导实体用@Table注释,它不允许我动态更改表名。网上的大多数建议都表明,这不是我们应该尝试和改变的 但在我的场景中,识别所有消费者并提前创建表听起来并不正确。将来,我希望能够无缝地将消费者添加到我的API中 我想使用API调用中传递的变量作为cassandra表名的前缀。这是我能做到的吗?对于初学者来说:

我有多个API使用者将类似数据发布到我的API中。我的API需要使用这些数据,并将数据持久化到由使用者名称标识的cassandra表中。例如,consumername_表名

我的spring引导实体用@Table注释,它不允许我动态更改表名。网上的大多数建议都表明,这不是我们应该尝试和改变的

但在我的场景中,识别所有消费者并提前创建表听起来并不正确。将来,我希望能够无缝地将消费者添加到我的API中


我想使用API调用中传递的变量作为cassandra表名的前缀。这是我能做到的吗?

对于初学者来说:不重新编译就不能更改注释-它们被烘焙到编译的类文件中。这不是正确的方法


为什么不把所有的东西都放在一张桌子上,让消费者成为关键?这将为您提供相同的功能,而不会带来任何麻烦。

谢谢Chris。我正在考虑把所有东西放在一张桌子上,因为这似乎是唯一可行的方法。但是由于我有Oracle RDBMS的背景,我不愿意把所有的东西都放在一个地方。但也许我的理解是愚蠢的。但是考虑到一个真正的用例,你不认为应该有其他的方法来做这样的事情吗?我也不会在Oracle中为每个客户做一个表。我在Oracle中创造性地使用分区和索引组织的表完成了数亿行表,并获得了出色的查询和插入性能。但这是一个旁白。在Cassandra中,如果您总是知道要查询哪个客户,那么将客户作为分区密钥的一部分绝对是正确的方法。如果您不这样做(即,您会问诸如“向我显示订单ID 638”之类的问题),那么将客户作为集群密钥字段可能更有意义。