11t*_*ion 1 spring cassandra spring-data
在一个新项目中,我必须Cassandra用作持久层。
我正在使用Spring Data存储库来运行查询。我的实体如下所示
@Table("my_customer")
public class CustomerEntity {
@PrimaryKey
private Long id;
....
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用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)
Run Code Online (Sandbox Code Playgroud)
似乎 spring 没有检测@Table("my_customer")到运行查询中提到的表名。它应该在查询中使用my_customer而不是customerentity作为表名。
难道我做错了什么?它适用JPA于关系数据库的存储库。我也试过在@Entity(name = "my_customer")没有运气的情况下注释实体类。(我知道它只会影响CQL/JPQL)
您可能正在@Table从javax.persistence. 如果您从 导入相同的注释org.springframework.data.cassandra.mapping,那么您应该没问题。