В новом проекте я должен использовать Cassandra
в качестве постоянного слоя.
Я использую Spring Data
репозитории для запуска запросов. Моя сущность выглядит ниже
@Table("my_customer")
public class CustomerEntity {
@PrimaryKey
private Long id;
....
}
Когда я пытаюсь получить количество строк в этой таблице, используя repository.count()
, выдается следующее исключение
org.springframework.data.cassandra.CassandraInvalidQueryException: Query; CQL [SELECT count(*) FROM customerentity;]; unconfigured table customerentity; nested exception is com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table customerentity
at org.springframework.data.cassandra.core.cql.CassandraExceptionTranslator.translate(CassandraExceptionTranslator.java:139)
at org.springframework.data.cassandra.core.cql.CassandraAccessor.translate(CassandraAccessor.java:334)
at org.springframework.data.cassandra.core.cql.CqlTemplate.translateException(CqlTemplate.java:732)
at org.springframework.data.cassandra.core.cql.CqlTemplate.query(CqlTemplate.java:298)
Похоже, что Spring не определяет имя таблицы, указанное в @Table("my_customer")
для выполнения запроса. В качестве имени таблицы в запросе следует использовать my_customer
вместо customerentity
.
Я что-то не так делаю? Он отлично работает с JPA
хранилищами для реляционной базы данных. Я также попытался аннотировать класс сущности с помощью @Entity(name = "my_customer")
, но безуспешно. (Я знаю, что это повлияет только на CQL/JPQL
)