当前位置: 首页 > 知识库问答 >
问题:

Spring Data Cassandra命名策略

唐渊
2023-03-14

Kotlin+Spring Boot Cassandra应用程序忽略了@column(“column_name”)注释。下面的注释

@Column("order_details")
val orderDetails: String

正在映射到orderdetails而不是order_details。由于OrderDetails列在表中不存在,因此会导致运行时错误。

@Table("order_by_customer")
data class CustomerOrder(
    @PrimaryKeyColumn(name = "customer_id", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
    val customerId: UUID,
    @Column("order_details")
    val orderDetails: String,
    @Column("ordered_at")
    val orderedAt: LocalDate
)

共有1个答案

张星洲
2023-03-14

根据spring-data-cassandra团队提供的解决方案。数据类需要编码如下所示

@table(“order_by_customer”)数据类CustomerOrder(@primarykeycolumn(name=“customer_id”,ordinal=0,type=primarykeytype.partitioned)val customerid:UUID,@field:column(“order_details”)val orderdetails:String,@field:column(“ordered_at”)val orderedat:LocalDate)

https://github.com/spring-projects/spring-data-cassandra/issues/1146

https://kotlinlang.org/docs/annotations.html#annotation-use-site-targets

 类似资料:
  • 问题内容: 我对hibernate(5.1版)的命名策略有些困惑-即它更改了我的表名,我想避免这种情况。另外- 根据intelij似乎已弃用,但我找不到正确配置它的(另一种)方法。 我在application.properties中具有以下配置: 如前所述,第一个被标记为已练习。 现在我有一个实体: 表格名称是类似usaUploadTable 中的名称。 现在,当我运行我的应用程序时,我得到 表’

  • 我对hibernates(5.1版)的命名策略有点困惑——也就是说,它改变了我的表名,我希望避免这种情况。还有-

  • underscored 参数 Sequelize 为模型提供了 underscored 参数. 设为 true 时,此参数会将所有属性的 field 参数设置为其名称的 snake_case 版本. 这也适用于由关联和其他自动生成的字段自动生成的外键. 例: const User = sequelize.define('task', { username: Sequelize.STRING },

  • 我知道我可以用注释命名所有表,并为所有列提供名称,但这不是我想要的解决方案。 不幸的是,我没有找到任何匹配我的案例的策略(我知道这展示了如何创建自定义命名策略,但我不认为我的案例是不常见的),我应该为我的MariaDB配置使用什么命名策略来匹配我的案例?

  • 问题内容: 我正在使用postgresql数据库和spring + hibernate框架编写应用程序。 我将spring框架从4.1.5.RELEASE升级到4.2.0.RELEASE版本,并将hibernate框架从4.3.7.Final升级到了5.0.0.Final版本。 升级后,我在NamingStrategy中遇到问题。在postgresql数据库中,表列名称以小写字母用下划线分隔,在应