Rod*_*ani 6 mongodb spring-data-mongodb
我怀疑与Spring Data MongoDB的BigDecimal值支持有关,有人可以帮我提供一些有关它的新闻,是否会支持这种类型,或者是否有人知道解决方法来满足我的需求.这就是交易:我正在开发一个项目,我们使用MongoDB作为DB和Spring作为框架,我们想保存我们应该在数据库中获得货币值的字段作为BigDecimal,我读过那个mongo只接受double作为浮点数,但我不认为这种类型会有用.你能问我一些关于它的事吗?
Luk*_*ski 10
您可以更改BigDecimaldo 的转换器,Decimal128这是NumberDecimal自mongo 3.4以来的java表示:
@Bean
public MongoCustomConversions mongoCustomConversions() {
return new MongoCustomConversions(Arrays.asList(
new Converter<BigDecimal, Decimal128>() {
@Override
public Decimal128 convert(@NonNull BigDecimal source) {
return new Decimal128(source);
}
},
new Converter<Decimal128, BigDecimal>() {
@Override
public BigDecimal convert(@NonNull Decimal128 source) {
return source.bigDecimalValue();
}
}
));
}
Run Code Online (Sandbox Code Playgroud)
实际上自Spring Data 2.0.7.RELEASE以上更改如下:
@Bean
public MongoCustomConversions mongoCustomConversions() {
return new MongoCustomConversions(Arrays.asList(
new BigDecimalDecimal128Converter(),
new Decimal128BigDecimalConverter()
));
}
@WritingConverter
private static class BigDecimalDecimal128Converter implements Converter<BigDecimal, Decimal128> {
@Override
public Decimal128 convert(@NonNull BigDecimal source) {
return new Decimal128(source);
}
}
@ReadingConverter
private static class Decimal128BigDecimalConverter implements Converter<Decimal128, BigDecimal> {
@Override
public BigDecimal convert(@NonNull Decimal128 source) {
return source.bigDecimalValue();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7142 次 |
| 最近记录: |