Java records能否用于AWS SDK for Java 2.x的DynamoDB增强客户端API?
在AWS SDK for Java 2.x DynamoDB Enhanced Client中使用Java Record
核心结论
DynamoDB Enhanced Client 从2.17.0版本开始原生支持Java Record,无需手动编写getter或Builder样板代码,完全契合Java Record的设计初衷。
关键细节
- 版本要求:必须使用AWS SDK for Java 2.x 2.17.0及以上版本。你参考的旧版文档针对的是Record支持前的不可变类处理方案,因此会要求手动实现getter和Builder。
- 注解使用:仅需给Record添加
@DynamoDbBean注解,字段上用@DynamoDbPartitionKey、@DynamoDbSortKey等注解指定主键即可,无需额外代码。 - 自动适配访问方法:Enhanced Client会自动识别Record生成的
字段名()形式的访问方法(而非传统的get字段名()),完全符合Record的语法特性。
示例代码
import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbBean; import software.amazon.awssdk.enhanced.dynamodb.mapper.annotations.DynamoDbPartitionKey; @DynamoDbBean public record User( @DynamoDbPartitionKey String userId, String username, Integer age ) {}
CRUD操作示例
// 创建Enhanced Client DynamoDbEnhancedClient enhancedClient = DynamoDbEnhancedClient.create(); // 关联DynamoDB表 Table<User> userTable = enhancedClient.table("Users", TableSchema.fromBean(User.class)); // 插入数据 userTable.putItem(new User("user_001", "jane_smith", 28)); // 查询数据 User fetchedUser = userTable.getItem(Key.builder().partitionValue("user_001").build());
内容的提问来源于stack exchange,提问作者Garret Wilson
相关产品推荐
相关产品推荐

