mongodb - 如何使 Spring Boot 与 Bson 注释一起使用?
问题描述
我有一个像这样的实体类。
class MyEntity {
@BsonId
private String id; // !OBJECT_ID but STRING
@BsonProperty("some_property")
private String someProperty;
}
它适用于带有 pojo 编解码器的纯 mongodb 驱动程序。
MyEntity(someProperty=...)
MyEntity(someProperty=...)
MyEntity(someProperty=...)
现在,当我尝试在我的 Spring Boot 应用程序中使用该模块时,我发现只有id
字段被映射。
template.find(Query.query(Criteria.where("...").is("...")).limit(10),
MyEntity.class,
"some_collection")
.doOnNext(v -> {
log.debug("v: {}", v);
})
.blockLast();
MyEntity(id=..., someProperty=null)
MyEntity(id=..., someProperty=null)
MyEntity(id=..., someProperty=null)
我已经知道我可以(也许应该)用@Field
注释来注释这些字段。
但是实体类驻留在不同的模块中。
我已经尝试添加一个 pojo 编解码器并且没有运气。
@Bean
public MongoClientSettingsBuilderCustomizer mongoClientSettingsBuilderCustomizer() {
return b -> {
final CodecRegistry registry = CodecRegistries.fromRegistries(
MongoClientSettings.getDefaultCodecRegistry(),
CodecRegistries.fromProviders(PojoCodecProvider.builder().automatic(true).build()));
b.codecRegistry(registry);
};
}
我怎样才能让 Spring Boot 在@BsonProperty
没有的情况下工作@Field
?
解决方案
推荐阅读
- email - Jenkins 测试电子邮件失败,但发送了构建电子邮件
- bash - 将 GIT 命令的值存储在 Bash 变量中
- python - 当需要多个 groupby() 和 shift() 时,如何在 pandas 数据框中逐行重新计算值?
- javascript - 阅读一次性电子邮件时引发错误 - Javascript
- node.js - gulp:重新安装节点后找不到命令
- python - 凯撒密码和while循环的问题
- c# - 尝试创建“activitymimeattachment”时获取空的 pdf 附件
- python - 如何使用 pandas 获取时间戳计算
- python - 有没有办法使用 Surface.copy() 复制曲面的某个部分?
- android-emulator - 无法在模拟器上运行我的应用程序 - 加载状态时出错,例如设备“goldfish_pipe”的 0x0