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> {
@Override
public 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 MyReadConverter
implements Converter<DBObject, SrUserExtWithBLOBs> {
@Override
public 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;
}
}