Pit*_*ita 5 java cassandra datastax
我正在遵循Datastax网站上的Cassandra Java对象映射器教程。
在定义访问器时
@Query("SELECT * FROM testks.user ")
Result<User> getAll();
Run Code Online (Sandbox Code Playgroud)
运行此查询给我一个
com.datastax.driver.core.exceptions.InvalidQueryException: Some partition key parts are missing: id
Run Code Online (Sandbox Code Playgroud)
环顾四周,似乎您不提供分区键就无法在cassandra中进行查询。是这样吗 这似乎是一个奇怪的要求。如果我想要全选查询,我该怎么做?
该表定义为
CREATE TABLE testks.user (
id text PRIMARY KEY,
name text
Run Code Online (Sandbox Code Playgroud)
)
你没有提供很多细节。如果您按照以下步骤操作,则不会出现任何错误
您应该像下面一样定义用户模型
用户.java
@Table(name = "user")
public class User {
@PartitionKey
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" + "id=" + id + ", name=" + name + '}';
}
}
Run Code Online (Sandbox Code Playgroud)
和存储库如下
用户访问器.java
@Accessor
public interface UserAccessor {
@Query("SELECT * FROM user")
Result<User> getAll();
}
Run Code Online (Sandbox Code Playgroud)
这是使用存储库的方法
主.Java
public static void main(String[] args) {
try (Cluster cluster = Cluster.builder().addContactPoints("127.0.0.1").withCredentials("cassandra", "cassandra").build(); Session session = cluster.connect("test")) {
MappingManager manager = new MappingManager(session);
UserAccessor userAccessor = manager.createAccessor(UserAccessor.class);
System.out.println(userAccessor.getAll().all());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3054 次 |
| 最近记录: |