Как использовать запросы Spring Data Repositories с DynamoDB - PullRequest
0 голосов
/ 27 мая 2019

У меня есть DynamoDB с первичным ключом и ключом сортировки.Мое сопоставление сущностей выглядит следующим образом:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class MeasurmentId implements Serializable {

    @DynamoDBHashKey
    private String externalId;
    @DynamoDBRangeKey
    private Long timestamp;   
}

и

@DynamoDBTable(tableName = "dbTable")
@Data
public class Measurment {

    @Id
    private MeasurmentId id;


    public void setExternalId(String externalId) {
        if (id == null) {
            id = new MeasurmentId();
        }
        id.setExternalId(externalId);
        this.externalId = externalId;
    }

    public void setTimestamp(Long timestamp) {
        if (id == null) {
            id = new MeasurmentId();
        }
        id.setTimestamp(timestamp);
        this.timestamp = timestamp;
    }

}

С этим сопоставлением возникла проблема, связанная с работой с репозиториями данных Spring и созданием запросов на основе имен методов.Мне нужно искать по externalId и по временной шкале, но когда я создаю запрос вроде этого

List<Measurment> findById_ExternalIdAndId_Timestamp(String externalId,Long timestamp);

Не работает и получаю стек с нулевым указателем

Это работает только при поиске по MeasurmentId class например,

MeasurementRepository.findById(new MeasurmentId(id, 1555419600L));

Но мне нужно использовать timestamp с оператором «Beetwen / After / Before», поэтому мой вопрос заключается в том, как создать запрос с помощью (методаимена или иным способом) когда я могу использовать Hash Key и Range key с оператором, используя Spring Data Repositories

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...