我是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没有丢失信息?