You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 10:43:24