spring数据cassandra将键空间名和表名转换为小写

9avjhtql  于 2021-06-14  发布在  Cassandra
关注(0)|答案(2)|浏览(394)

我尝试使用spring数据cassandra将现有的cassandra表Map到java类中。表名使用大写字母,例如“mytable”。然而,当我使用@table(“mytable”)时,spring数据cassandra无法识别该表,因为它将名称视为小写。
有没有办法告诉SpringDataCassandra不要将名称转换成小写?
示例代码:

import org.springframework.data.cassandra.core.mapping.Table;

@Table("MyTable")
public class MyTable {

}
d8tt03nd

d8tt03nd1#

我可以通过在@table注解中添加(forcequote=true)来解决这个问题。

@Table(value = "MyTable", forceQuote = true)
public class MyTable {

}
3okqufwl

3okqufwl2#

在cassandra的cql中,键空间、表和列名等标识符不区分大小写。如果您希望使用混合大小写,您必须引用您的姓名,即:

import org.springframework.data.cassandra.core.mapping.Table;

@Table("\"MyTable\"")
public class MyTable {

}

也就是说,我强烈建议不要使用混合大小写标识符。虽然它是有效的,但它造成了很多复杂性,让人不得不担心引用所有内容。我在cassandra中看到最多的惯例是使用所有小写字母 _ 作为单词的分隔符,即。 my_table . 你还可以用 MyTable 作为类名来满足java约定。

相关问题