spring-data cassandra搜索多个键

时间:2017-04-03 19:08:15

标签: spring cassandra spring-data

我正在尝试使用spring-data Cassandra搜索具有多个复合键的表。

我的表看起来像这样

CREATE TABLE test (
    id1 text,
    id2 text,
    PRIMARY KEY (id1, id2)

我的存储库看起来像这样

public interface TestRepo extends CrudRepository <Test, String> {
  public List<Message> findById1(String id1);
}

这很好用,但现在我需要搜索我有id1和id2。


我尝试过的事情

这不编译,它给我一个错误

public interface TestRepo extends CrudRepository <Test, String> {
  public List<Message> findById1(String id1);
  public List<Message> findById1Id2(String id1, String id2);
}

错误

 No property id2 found for type String! Traversed path: Message.id2.

这是编译,但它说我需要允许过滤,显然是因为我没有提供第一个主键。

public interface TestRepo extends CrudRepository <Test, String> {
  public List<Message> findById1(String id1);
  public List<Message> findById2(String id1, String id2);
}

错误

 Error about Allow Filtering.

1 个答案:

答案 0 :(得分:1)

我错过了findById1Id2应该findById1AndId2之间的。回购看起来像这样

public interface TestRepo extends CrudRepository <Test, String> {
  public List<Message> findById1AndId2(String id1, String id2);
}

来自documentation

  

7.4.2。查询创建

     

...

     

在非常基础的层面上你可以定义   实体属性的条件,并将它们与And和Or连接起来。

注意

我回答而不是删除问题,因为我在StackOverflow上找不到任何信息。