Я следовал всему, что изложено здесь - https://github.com/derjust/spring-data-dynamodb/wiki/Use-Hash-Range-keys. Но все равно не повезло.
У меня есть таблица DynamoDB с ключом хеш-функции и ключом сортировки.
Вотмой класс сущности RecentlyPlayed.class
@DynamoDBTable(tableName="some-table")
public class RecentlyPlayed {
@Id
private RecentlyPlayedId recentlyPlayedId;
// ----- Constructor methods -----
@DynamoDBHashKey(attributeName="keyA")
// Getter and setter
@DynamoDBRangeKey(attributeName="keyB")
// Getter and setter
}
Вот мой ключевой класс RecentlyPlayedId.class
public class RecentlyPlayedId implements Serializable {
private static final long serialVersionUID = 1L;
private String keyA;
private String keyB;
public RecentlyPlayedId(String keyA, String keyB) {
this.keyA = keyA;
this.keyB = keyB;
}
@DynamoDBHashKey
// Getter and setter
@DynamoDBRangeKey
// Getter and setter
}
Вот мой интерфейс хранилища RecentlyPlayedRepository
@EnableScan
public interface RecentlyPlayedRepository extends CrudRepository<RecentlyPlayed, RecentlyPlayedId> {
List<RecentlyPlayed> findAllByKeyA(@Param("keyA") String keyA);
// Finding the entry for keyA with highest keyB
RecentlyPlayed findTop1ByKeyAOrderByKeyBDesc(@Param("keyA") String keyA);
}
Iя пытаюсь сохранить объект, подобный этому
RecentlyPlayed rp = new RecentlyPlayed(...);
dynamoDBMapper.save(rp); // Throws that error
recentlyPlayedRepository.save(rp); // Also throws the same error
Я использую Spring v2.0.1.RELEASE
.Вики в оригинальной документации предупреждает об этой ошибке и описывает, что нужно сделать, чтобы смягчить.Я сделал именно то, что они сказали.Но все равно не повезло.
Ссылка на эту вики здесь - https://github.com/derjust/spring-data-dynamodb/wiki/Use-Hash-Range-keys