2013-08-15 4 views
0

Я хотел бы запустить следующий код с составным первичным ключом.Astyanax getKey с составным ключом

Column<String> result = keyspace.prepareQuery(CF_COUNTER1) 
    .getKey(rowKey) 
    .getColumn("Column1") 
    .execute().getResult(); 
Long counterValue = result.getLongValue(); 

Исследование, кажется, показывает, что это может быть строкой, которая представляет собой ключ (если он не является соединением первичного ключа). The documentation говорит, что он имеет тип K, увы, я не очень разбираюсь в Java, и понятия не имею, что это значит. Это просто базовый тип, из которого наследуется множество материалов? Если это так, я не совсем понимаю, что нужно getKey(K) для обработки сложного ключа (я?).

ответ

2

Вам просто нужно написать класс, соответствующий столбцам в вашей модели данных. Затем вы можете передать этот класс Astyanax в ваши мутации или запросы.

Например, если у вас есть модель данных, как этот

CREATE TABLE fishblogs (
     userid varchar, 
     when timestamp, 
     fishtype varchar, 
     blog varchar, 
     image blob, 
     PRIMARY KEY (userid, when, fishtype) 
    ); 

вы бы создать класс вроде этого:

public class FishBlog { 
     @Component(ordinal = 0) 
     public long when; 
     @Component(ordinal = 1) 
     public String fishtype; 
     @Component(ordinal = 2) 
     public String field; 

     public FishBlog() { 
     } 
    } 

Когда и fishtype сформировать свой составной ключ столбца и представлены классом FishBlog. Userid будет вашим ключом/разделом и может иметь простой тип «строка».

Посмотрите на this blog explaining in great detail как вставить данные с помощью составных клавиш (откуда я взял этот пример).

Надеюсь, что это поможет.