Astyanax getKey with compound key

╄→гoц情女王★ 提交于 2019-12-13 04:33:54

问题


I would like to run the following code with a compound primary key.

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

Research seems to show that it can be a string that represents a key (if it's not a compound primary key). The documentation says that it is of type K, alas, I am not very experience with Java, and have no idea what that means. Is it just a base type that lots of stuff inherits from? If so, I'm not really any closer to knowing what getKey(K) needs in order to handle a compound key (am I?).


回答1:


You just need to write a class that fits the columns in your data model. You can then give this class to Astyanax in your mutations or queries.

For example, if you had a data model like this

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

you would create a class like this:

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

      public FishBlog() {
      }
   }

When and fishtype form your composite column key and are represented by the FishBlog class. Userid would be your row/partition key and can be of the simple "string" type.

Have a look at this blog explaining in great detail how to insert data with composite keys (where I took this example from).

Hope that helps.



来源:https://stackoverflow.com/questions/18258649/astyanax-getkey-with-compound-key

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!