【问题标题】:Spring CrudRepository query with multiple In conditions具有多个 In 条件的 Spring CrudRepository 查询
【发布时间】:2019-03-29 20:16:10
【问题描述】:

我正在尝试使用 Spring Data 从 dynamodb 表中获取数据,使用 In 关键字按两个字段进行过滤,但它总是返回空结果。

我有一个像这样的实体:

@DynamoDBTable(tableName = "my-table")
public class MyEntity {
    @Id
    private MyTableKey id;

    private String saleDate;
    private Long sellerId;

    // Some other properties

    @DynamoDBHashKey
    public String getSaleDate() {
        return this.saleDate;
    }

    @DynamoDBRangeKey
    public Long getSellerId() {
        return this.sellerId;
    }
}

我的存储库界面是

@EnableScan
@EnableScanCount
public interface MySalesRepository
        extends PagingAndSortingRepository<MyEntity, MyTableKey> {

    Page<MyEntity> findById (MyTableKey id, Pageable pageable);

    Page<MyEntity> findAllBySaleDateAndSellerIdIn (List<String> saleDate,
            List<Long> sellerId, Pageable pageable);
}

我想获取在 saleDate 列表中同时具有 saleDate 并且在 SellerId 列表中具有 SellerId 的商品,但我得到 0 个结果。

如何使用 And 和 In 关键字获取我想要的值?

【问题讨论】:

    标签: java spring-boot spring-data-jpa spring-data amazon-dynamodb


    【解决方案1】:

    尝试改变这个:

     Page<MyEntity> findAllBySaleDateAndSellerIdIn (List<String> saleDate,
            List<Long> sellerId, Pageable pageable);
    

    到这里:

     Page<MyEntity> findBySaleDateInAndSellerIdIn (List<String> saleDate,
            List<Long> sellerId, Pageable pageable);
    

    【讨论】:

    • 成功了!我不敢相信事情就这么简单。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    相关资源
    最近更新 更多