微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

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

解决方法:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐