spring - 未调用 Mongo 映射转换器

标签 spring mongodb converter

我有一个在 spring XML 中配置的 Mongo 映射转换器,如下所示:

<mongo:mapping-converter>
    <mongo:custom-converters>
        <mongo:converter>
            <bean class="com.pqbook.marc.mongo.converters.MarcRecordMongoReaderConverter" />
        </mongo:converter>
    </mongo:custom-converters>
</mongo:mapping-converter>

我有一个 Mongo 集合,从中读取“记录”类型的字段并将其转换为我的自定义 POJO 类型“MyRecord”。 我的转换器类如下所示:

@Component
public class MarcRecordMongoReaderConverter implements Converter<Record, MyRecord> {

@Override
public MyRecord convert(Record source) {
    // the conversion code
    // this method returns an object of type 'MyRecord'
}

我需要以不同的方式注册这个转换器吗?这个转换器会在什么时候被调用?是否有遗漏的内容?

最佳答案

您的配置应该与此类似。您必须使用 mongo 模板注册转换器。

<mongo:mongo host="127.0.0.1" port="27017" />
    <mongo:db-factory dbname="test" />

    <mongo:mapping-converter id="mappingConverter" base-package="com.pqbook.marc.mongo">
        <mongo:custom-converters>
            <mongo:converter>
                <bean class="com.pqbook.marc.mongo.converters.MarcRecordMongoReaderConverter" />
            </mongo:converter>
        </mongo:custom-converters>
    </mongo:mapping-converter>

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
        <constructor-arg name="mongoConverter" ref="mappingConverter"/>
    </bean>

关于spring - 未调用 Mongo 映射转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41371477/

相关文章:

cookies - 从标准 cookie 格式转换为 LibCurl cookie jar 格式

java - 无法将 String 转换为 int,但两者都是字符串?

spring - 使用 spring.profiles.include 包含配置文件似乎覆盖而不是包含

javascript - 想要检查用户是否已经存在 MongoDB

javascript - Mongoose 查询 findOne({params}) 返回 null,即使它在 mongo shell 中成功?

node.js - 查找和更新记录 - Mongoose

c# - 使用 RichTextBlock 或其他组件在 WinRT 中显示 Html

java - Spring 中是否有 ServiceLoader 的类似物以及如何使用它?

java - 无法确定 Hibernate PersistenceProvider

java - Spring - sql-error-codes.xml 错误代码映射文件中的 Ingres RDBMS 支持