Spring-data-mongodb Converter实现

来源:互联网 发布:材料工程硕士知乎 编辑:程序博客网 时间:2024/05/16 17:53

Springxml增加配置:

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"><constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /><constructor-arg name="mongoConverter" ref="mappingConverter"/></bean><mongo:mapping-converter >    <mongo:custom-converters>      <mongo:converter>        <bean class="com.mongo.MyConverter"/>      </mongo:converter>      <mongo:converter>        <bean class="com.mongo.MyReadConverter"/>      </mongo:converter>    </mongo:custom-converters></mongo:mapping-converter>

或者:

<mongo:mapping-converter><mongo:custom-converters base-package="com.mongodb.converters"/></mongo:mapping-converter>


Java代码实现:
import org.springframework.core.convert.converter.Converter;import com.mongodb.BasicDBObject;import com.mongodb.DBObject;import com.mongodb.util.JSON;public class MyConverter implements Converter<SrUserWithBLOBs, DBObject> {@Overridepublic DBObject convert(SrUserExtWithBLOBs arg0) {System.out.println("==================>>>converter");SrUserExtWithBLOBs srUserExtWithBLOBs = arg0;DBObject object = new BasicDBObject();object.put("_id", String.valueOf(srUserExtWithBLOBs.getId()));object.put("sruid", srUserExtWithBLOBs.getSruid());object.put("uid", srUserExtWithBLOBs.getUid());object.put("user_additionnal",JSON.parse(srUserExtWithBLOBs.getUserAdditional()));object.put("user_verify",JSON.parse(srUserExtWithBLOBs.getUserVerify()));return object;}}

import org.springframework.core.convert.converter.Converter;import com.mongodb.DBObject;public class MyReadConverterimplements Converter<DBObject, SrUserExtWithBLOBs> {@Overridepublic SrUserExtWithBLOBs convert(DBObject source) {System.out.println("==================>>>converter");SrUserExtWithBLOBs srUserExtWithBLOBs = new SrUserExtWithBLOBs();srUserExtWithBLOBs.setId(Integer.valueOf(String.valueOf(source.get("_id"))));srUserExtWithBLOBs.setUid(Integer.valueOf(String.valueOf(source.get("uid"))));srUserExtWithBLOBs.setSruid(Integer.valueOf(String.valueOf(source.get("sruid"))));srUserExtWithBLOBs.setUserAdditional(source.get("user_additionnal").toString());srUserExtWithBLOBs.setUserVerify(source.get("user_verify").toString());return srUserExtWithBLOBs;}}



原创粉丝点击