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

DynamoDBMapper执行scan查询结果缺失locale属性如何解决

问题原因

你在实体类中为locale字段仅添加了二级索引专属的@DynamoDBIndexRangeKey注解,该注解仅用于标识字段在全局二级索引中的排序键角色,不会被DynamoDBMapper识别为主表的普通属性。当你针对主表执行scan操作时,Mapper只会映射显式标注了@DynamoDBHashKey、@DynamoDBRangeKey或@DynamoDBAttribute的字段,因此locale字段没有被赋值。

解决方案

给locale字段补充@DynamoDBAttribute注解即可,修改后的字段配置如下:

@DynamoDBAttribute(attributeName = "locale")
@DynamoDBIndexRangeKey(
        attributeName = "locale",
        globalSecondaryIndexName = "skill-locale-index")
private String locale;

补充排查点

如果修改后仍未生效,可以检查以下配置:

  • 确认你没有在DynamoDBScanExpression中配置ProjectionExpression主动排除locale字段,你当前使用的空扫描表达式默认会返回全表字段
  • 确认存储到DynamoDB的记录中locale字段名和注解配置的attributeName完全一致,大小写无偏差
  • 建议skill字段也同步补充@DynamoDBAttribute注解,避免后续其他主表查询操作出现属性丢失问题

内容的提问来源于stack exchange,提问作者Nitika

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 00:51:00