自定义或提供提示,以允许Spring MongoTemplate使用最终成员反序列化对象

我正在使用Spring数据的MongoTemplate.我有一个班级已成功保存到mongoDB.当我尝试使用find方法检索保存的对象时,出现了NoSuchMethodException异常,因为MongoTemplate试图调用类的成员之一的不存在的认构造函数.

该成员没有认构造函数,因为它是具有最终成员的最终类.有两个构造函数.第一个接受所有相关值作为参数.第二个接受Map并具有@JsonCreator批注,这使Jackson可以在此类中“玩得开心”.

如何获得MongoTemplate来成功反序列化我的课程?

是否有某种可以帮助您的注释?
我可以通过MongoTemplate某种特殊的反序列化对象来处理相关的类吗?
我可以像Jackson一样要求MongoTemplate将参数作为Map发送吗?

解决方法:

如果您想使用非标准的构造函数,则实际上Spring Data MongoDB应该能够自动选择一个,但是如果您的情况没有发生(您可以共享更多代码以使事情变得清楚),则可以为构造函数添加@PersistenceConstructor注释.明确指出应使用哪个构造函数.

对于完全不标准的内容,您可能需要为您的课程创建自定义转换器.阅读更多Spring Data MongoDB reference

相关文章

MongoTemplate 是Spring Data MongoDB 中的一个核心类,为 S...
笔者今天要分享的是一个项目重构过程中如何将数据库选型由原...
mongodb/mongoTemplate.upsert批量插入更新数据的实现
进入官网下载官网安装点击next勾选同意,点击next点击custom...
头歌 MongoDB实验——数据库基本操作
期末考试复习总结