【发布时间】:2019-06-04 01:54:09
【问题描述】:
我正在使用 Scala 开发 Cassandra Spring-data 模块。我已经创建了域模型和设置 crud 存储库。
Spring 数据仓库设置如下:
@Repository
trait SampleRepository extends CassandraRepository[Sample, SampleKey]
表域模型设置如下:
@Table
case class Sample(@PrimaryKey
sampleKey: SampleKey,
@Column("surName")
surName: String)
主键是复合键。 Id 列作为分区键。将列命名为集群键
@PrimaryKeyClass
case class SampleKey(
@PrimaryKeyColumn( `type` = PrimaryKeyType.PARTITIONED, ordinal = 0, name = "id")
id: Int,
@PrimaryKeyColumn( `type` = PrimaryKeyType.CLUSTERED, ordinal = 1, name = "name")
name: String
)
在 scala 中类型是一个有效的关键字,因此使用了反向引号。我希望这可以工作,但是当我启动应用程序时,我得到了
Suppressed: org.springframework.data.mapping.MappingException: Composite primary key type [com.barclays.decisionstore.trac.model.SampleKey] has no fields annotated with @PrimaryKeyColumn
at org.springframework.data.cassandra.core.mapping.PrimaryKeyClassEntityMetadataVerifier.verify(PrimaryKeyClassEntityMetadataVerifier.java:91)
... 262 common frames omitted
Suppressed: org.springframework.data.mapping.MappingException: At least one of the @PrimaryKeyColumn annotations must have a type of PARTITIONED
at org.springframework.data.cassandra.core.mapping.PrimaryKeyClassEntityMetadataVerifier.verify(PrimaryKeyClassEntityMetadataVerifier.java:98)
... 262 common frames omitted
这意味着 Spring-Data 无法识别注解的类型参数。
与 java 模型类相同的代码可以正常工作。
不胜感激任何指针或替代解决这个问题。
【问题讨论】:
标签: scala cassandra spring-data spring-data-cassandra