#java #spring-boot #spring-data-jpa #spring-data #amazon-dynamodb
#java #spring-загрузка #spring-data-jpa #spring-данные #amazon-dynamodb
Вопрос:
Я пытаюсь получить данные из таблицы dynamodb, используя Spring Data, фильтруя по двум полям с использованием ключевого слова 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 и в ключевых словах?
Ответ №1:
Попробуйте изменить это:
Page<MyEntity> findAllBySaleDateAndSellerIdIn (List<String> saleDate,
List<Long> sellerId, Pageable pageable);
к этому:
Page<MyEntity> findBySaleDateInAndSellerIdIn (List<String> saleDate,
List<Long> sellerId, Pageable pageable);
Комментарии:
1. Это сработало! Я не могу поверить, что это было так просто. Спасибо!