【发布时间】:2020-04-29 20:30:05
【问题描述】:
我有一个使用 JPA 和 Spring Data DynamoDB 设置的 Spring 项目。它工作正常。我可以通过 Partition Key 和 Sort key(称为DynamoDBHashKey和DynamoDBRangeKey)读取DynamoDB表中的项目。
我的问题是我的存储库的设置方式,使用query和scan操作读取表,而不是get-item操作,应该更有效。
这是我的实体:
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.data.annotation.Id;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@DynamoDBTable(tableName = "my-entity-table")
public class MyEntity {
@Id
@DynamoDBHashKey
@DynamoDBAttribute(attributeName = "partition_key")
private String partitionKey;
@Id
@DynamoDBRangeKey
@DynamoDBAttribute(attributeName = "sort_key")
private String sortKey;
...
}
这是我的存储库:
import org.socialsignin.spring.data.dynamodb.repository.EnableScan;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@EnableScan
@Repository
public interface MyEntityRepository extends CrudRepository<MyEntity, String> {
List<MyEntity> findByPartitionKeyAndSortKey(String partitionKey, String sortKey);
}
当我的表同时具有分区键和排序键时,如何配置我的实体和存储库以使用 get-item 操作从表中读取项目?
【问题讨论】:
标签: java spring jpa spring-data-jpa amazon-dynamodb