我正在尝试使用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关键字获取所需的值?
最佳答案
尝试更改此:
Page<MyEntity> findAllBySaleDateAndSellerIdIn (List<String> saleDate,
List<Long> sellerId, Pageable pageable);
对此:
Page<MyEntity> findBySaleDateInAndSellerIdIn (List<String> saleDate,
List<Long> sellerId, Pageable pageable);