来自 mongo 模板的 Mongo 响应未正确映射到 java 对象
Posted
技术标签:
【中文标题】来自 mongo 模板的 Mongo 响应未正确映射到 java 对象【英文标题】:Mongo response from mongo template not being mapped properly into java object 【发布时间】:2021-09-20 05:03:06 【问题描述】:我有一个由 jsonSchemaPojo2 创建的 java pojo:
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
@JsonPropertyOrder(
"CardBranding"
)
public class RewardsProcessing implements Serializable
@JsonProperty("CardBranding")
@NotNull
private String cardBranding
public RewardsProcessing(String cardBranding)
this.cardBranding = cardBranding
@JsonProperty("CardBranding")
public String getCardBranding()return cardBranding;
@JsonProperty("CardBranding")
public void setCardBranding(String cardBranding) this.cardBranding = cardBranding
奖励收集:
[
CardBranding : "1",
CardBranding : "2"
]
以下代码将mongo响应解析成java pojo
AggregationResults results = mongoTemplate.aggregate(agg, "Rewards", RewardsProcessing.class);
问题是我在生成的 java 对象中得到了 null。聚合区分大小写。
我有两个选择:
使用 jsonschemapojo2 中的某些属性将 cardBranding 字段设为大写。我尝试研究但没有找到。 Schemapojo2 默认将字段设置为小写。
配置聚合方法忽略大小写。
提前致谢!!
【问题讨论】:
【参考方案1】:不要使用jackson使用的@JsonProperty
,而是使用@Field
字段注释。
@Field("CardBranding")
private String cardBranding
需要使用导入注解
import org.springframework.data.mongodb.core.mapping.Field;
【讨论】:
以上是关于来自 mongo 模板的 Mongo 响应未正确映射到 java 对象的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ejs 模板中使用数组显示来自 mongo 的 json 数据?