2016-11-25 9 views
1

私はDatastaxウェブサイトのCassandra javaオブジェクトマッパーチュートリアルに従っています。あなたがパーティション・キーを設けることなく、カサンドラに照会することはできませんように見えるの周りにこのクエリを実行している Cassandraパーティションのキーパーツがありません

、しばらく定義アクセサは

@Query("SELECT * FROM testks.user ") 
Result<User> getAll(); 

探してくれ

com.datastax.driver.core.exceptions.InvalidQueryException: Some partition key parts are missing: id 

を与えます。それは事実ですか?これは奇妙な要求のようです。すべてのクエリを選択したい場合は、どうすればよいでしょうか?

テーブルを

CREATE TABLE testks.user (
id text PRIMARY KEY, 
name text 

として定義される)

+0

は正常に動作する必要があります。どのようにこれを実行しています。 – Mritunjay

答えて

0

ここでは、完全な作業コードです。

User.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 + '}'; 
    } 
} 

UserAccessor.java

@Accessor 
public interface UserAccessor { 

    @Query("SELECT * FROM user") 
    Result<User> getAll(); 
} 

Main.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()); 
    } 
} 
関連する問題