#spring-data #spring-data-cassandra
#spring-data #spring-data-cassandra
Вопрос:
Я настраиваюсь 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
as @Transient
и выполнять некоторую сериализацию самостоятельно? Я пытался аннотировать свой класс с @Persistent
помощью, но получал сообщение об PrimaryKey
ошибке missing on Location
. Я не могу понять, зачем нужен первичный ключ…
Ответ №1:
Из-за нереляционных деталей Cassandra вы обнаружите, что она не работает как JPA.
В Cassandra нет объединений, поэтому встраивание другой таблицы в качестве атрибута таблицы не допускается.
Встраиваемые типы в настоящее время не поддерживаются. Если вы хотите уточнить запрос функции, пожалуйста, создайте Jira для SDC *.
Спасибо.
Комментарии:
1. Запрос функции: github.com/spring-projects/spring-data-cassandra/issues/16