Spring Data MongoDB和@ID作为整数而不是BigInteger

时间:2015-05-26 12:22:44

标签: java spring mongodb spring-data

我是MongoDB和NoSQL的新手。

我为Spring Data MongoDB创建了这两个转换器:

import java.math.BigInteger;

import org.bson.types.ObjectId;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

public class IntegerToObjectIdConverter implements Converter<Integer, ObjectId> {

    @Override
    public ObjectId convert(Integer source) {
        return source == null ? null : new ObjectId(BigInteger.valueOf(source).toString());
    }

}

import java.math.BigInteger;

import org.bson.types.ObjectId;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;

public class ObjectIdToIntegerConverter implements Converter<ObjectId, Integer> {

    @Override
    public Integer convert(ObjectId source) {
        return source == null ? null : new BigInteger(source.toString(), 16).intValue();
    }
}

我将它们插入到MongoDB转换器中,并且它们工作(在非常小的场景中)。

这是对的吗?我可以在Integer&lt;&gt;之间进行转换吗? BigInteger没有丢失信息?

0 个答案:

没有答案