如何在Spring-data-mongodb框架中将BigDecimal转换为Double
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在Spring-data-mongodb框架中将BigDecimal转换为Double,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1750字,纯文字阅读大概需要3分钟。
内容图文
![如何在Spring-data-mongodb框架中将BigDecimal转换为Double](/upload/InfoBanner/zyjiaocheng/905/dd2a049b12e5461a9b44ad04115f87e2.jpg)
Spring Data MongoDB映射默认情况下将BigDecimal转换为String.但是,我希望它们在mongodb中转换为Double.这是后者在mongodb(比较查询/聚合查询)中对此字段进行查询所必需的.
我如何重新编译自己的转换器(BigDecimalToDouble / DoubleToBigDecimal)来执行此操作?
解决方法:
以下是添加自己的转换器的方法:
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongoDbFactory"/>
<constructor-arg ref="mappingConverter"/>
<property name="writeConcern">
<util:constant static-field="com.mongodb.WriteConcern.FSYNC_SAFE"/>
</property>
<property name="writeResultChecking">
<util:constant static-field="org.springframework.data.mongodb.core.WriteResultChecking.EXCEPTION"/>
</property>
</bean>
<mongo:mapping-converter id="mappingConverter">
<mongo:custom-converters base-package="com.vladmihalcea.**.mongo.converter"/>
</mongo:mapping-converter>
现在您的转换器看起来像:
@Component
public class DoubleToBigDecimalConverter implements Converter<Double, BigDecimal> {
@Override
public BigDecimal convert(Double source) {
return new BigDecimal(source);
}
}
@Component
public class BigDecimalToDoubleConverter implements Converter<BigDecimal, Double> {
@Override
public Double convert(BigDecimal source) {
return source.doubleValue();
}
}
在添加转换器之前我得到:
update test.product query: { _id: 123 } update: { _id: 123, _class: "com.vladmihalcea.mongo.model.Product", name: "Tv", quantity: "10", discount: "12.34", version: 0 } nscanned:0 nupdated:1 upsert:1 keyUpdates:0 locks(micros) w:49328 50ms
添加转换器后:
update test.product query: { _id: 123 } update: { _id: 123, _class: "com.vladmihalcea.mongo.model.Product", name: "Tv", quantity: "10", discount: 12.34, version: 0 } nscanned:0 nupdated:1 upsert:1 keyUpdates:0 locks(micros) w:64689 65ms
内容总结
以上是互联网集市为您收集整理的如何在Spring-data-mongodb框架中将BigDecimal转换为Double全部内容,希望文章能够帮你解决如何在Spring-data-mongodb框架中将BigDecimal转换为Double所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。