【问题标题】:spring-data cassandra search on more than one keyspring-data cassandra 搜索多个键
【发布时间】:2017-08-28 18:45:03
【问题描述】:

我正在尝试使用 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.

【问题讨论】:

    标签: spring cassandra spring-data


    【解决方案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 上找不到任何信息。

    【讨论】:

    • 但是你怎么能做一个公共列表 findById1(String id1);没有“允许过滤”错误?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 2018-07-25
    • 2018-08-01
    相关资源
    最近更新 更多