Я настраиваю spring-data-cassandra
в первый раз и имею такой класс:
@Table(value = "contact")
public class Contact {
@Id
UUID id;
...
Location Location;
...
public void setLocation(Location location) {
this.location = location;
}
public Location getLocation() {
return location;
}
}
Это дает мне ошибку при запуске:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mySQLTransactionRepository': Invocation of init method failed; nested exception is org.springframework.data.cassandra.mapping.VerifierMappingExceptions: com.foo.backend.core.Location:
Cassandra entities must have the @Table, @Persistent or @PrimaryKeyClass Annotation
....
Исходя из фона spring-data-jpa
, раньше было достаточно просто аннотировать Location
с помощью @Embeddable
. Похоже, это не работает с spring-data-cassandra
. Как использовать составные объекты с spring-data-cassandra
?
Придется ли аннотировать location
как @Transient
и самому выполнять некоторую сериализацию? Я пытался аннотировать свой класс с помощью @Persistent
, но получал ошибку об отсутствии PrimaryKey
в Location
. Я не могу понять, зачем нужен первичный ключ...