Я работаю над Cassandra Spring-data module, используя Scala. Я создал модель домена и установил хранилище crud.
Хранилище данных Spring настроено, как показано ниже:
@Repository
trait SampleRepository extends CassandraRepository[Sample, SampleKey]
Модель домена таблицы настраивается следующим образом:
@Table
case class Sample(@PrimaryKey
sampleKey: SampleKey,
@Column("surName")
surName: String)
Первичный ключ - составной ключ. Идентификатор столбца в качестве ключа раздела. имя столбца как ключ кластера
@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 работает без проблем.
Буду признателен за любые указатели или заменители для решения этой проблемы.