如何在 spring-data-mongodb 框架中将 BigDecimal 转换为 Double

2024-04-26

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 spring-data-mongodb 框架中将 BigDecimal 转换为 Double 的相关文章

  • 如何在没有 Express 的情况下通过 Mongoose 与 MongoDB 交互?

    我想要一个可以牢固掌握 CRUD 操作如何工作的环境 到目前为止 我一直在使用views看看数据是什么样子 但由于明显缺乏灵活性 这种方法并不是那么有洞察力 这就像在黑暗中开车一样 现在我希望能够通过 Mongoose 提供的功能来处理 M
  • 如何在 mongodb 中使用一个查询更新每个值

    我有一个数据如下 id 1 exist true id 2 exist false id 3 exist false 当我 findOneAndUpdate id 2 exist true 时 我希望使用聚合等在一个查询中自动将 id 1
  • 某些事务传播不适用于 Spring/Hibernate 4

    我正在将应用程序从 3 3 升级到 Hibernate 4 2 我们还使用 Spring 3 1 3 目前我们不能 不会更新 我的一些单元测试现在失败了 org hibernate HibernateException No Session
  • Java心跳设计

    我需要在我的 Java 项目上实现一个心跳系统 3 5 个客户端和 1 个服务器 但我有一些问题 1 客户端需要有 2 个套接字吗 1 用于心跳 1 用于接收我的软件的正常消息 2 我看到在特定情况下 当客户端滞后时 客户端不会收到消息 如
  • Spring Batch - 读取多行日志消息

    我面临一个问题 在配置了 Spring 集成的 Spring Batch 应用程序中将多行日志消息读取为单个消息 该应用程序必须将多行日志消息 示例异常堆栈跟踪 读取为单个消息 稍后它必须处理并对消息进行分类以进一步建立索引 每行都由其时间
  • 如何重命名 MongoDB 中对象数组中的嵌套键?

    文件结构 id 5 grades grade 80 mean 75 std 8 mean 90 std 5 mean 85 std 3 根据 mongodb 中的上述文档结构 我想将键grade 重命名为grade db collectio
  • Java俄罗斯方块旋转

    我知道这个问题已经被问了很多 但我想知道如何旋转俄罗斯方块 我已经做了一个又长又糟糕的解决方案 大约 170 行代码 但应该有更简单的方法来做到这一点 我的俄罗斯方块由 4 个块组成 它们都知道它们在矩阵中的位置 行和列 Matrix本身是
  • 如何将跨源资源共享与 Spring MVC 4.0.0 RESTful Webservice 集成

    我有一个简单的 Web 服务返回JSON data The 用户等级 com bargadss SpringService Domain 是个POJO类包含 用户 ID 名字 姓氏 电子邮件 The 用户服务类 com bargadss S
  • 从壁纸中获取颜色? - 安卓

    如何找到当前壁纸的 平均 颜色并将该颜色设置为我的小部件上的布局 我正在尝试做的一个例子 这是 AccuWeather 上的设置 您可以使用WallpaperManager getWallpaperColors https develope
  • 如果Jetty的密钥库中有多个证书,它如何选择?

    我们的系统中有一些代码用于自动将自签名证书生成到密钥库中 然后由 Jetty 使用 如果给定主机的密钥已经存在 那么什么也不会发生 但如果它不存在 我们会生成一个新密钥 如下所示 public void generateKey String
  • Java中的字符算术

    在玩的过程中 我遇到了一些对我来说似乎很奇怪的事情 以下不是有效的 Java 代码 char x A x x 1 possible loss of precision 因为其中一个操作数是整数 所以另一个操作数被转换为整数 结果无法分配给字
  • 需要在 java api 中的 Solr 搜索中搜索文本及其周围的几行

    我正在使用 solr 7 7 2 并且我使用 solrj 在 Solr 中编写了一个 Java 程序 该程序在一个巨大的文本文件中搜索单词 我使用以下代码来显示代表整个文本的搜索结果 SolrQuery params new SolrQue
  • 什么是样板代码、热点代码和热点?

    我知道这些术语是在性能实现 优化的背景下使用的 最近一直在研究这个问题 并尝试过搜索 但没有得到任何例子 清楚地阐述 描述这些概念以及在现实世界开发场景中实现这些问题 概念 有人可以彻底解释这些术语 示例场景以及可能使用这些概念和术语的地方
  • 蓝牙连接;无法正确发送字符串

    当我需要将字符串从服务器蓝牙套接字发送到客户端蓝牙套接字时 我的程序遇到了麻烦 只要我一次只发送一个字符串 例如聊天 一切都可以正常工作 但是如果我需要在短时间内编写更多字符串 以交换信息 则字符串将不会与客户端代码分离 例如 如果我发送
  • 如何使用 Java 11 和 JavaFX 11 运行 ControlsFX 示例应用程序

    ControlFX 网站 http fxexperience com controlsfx says 如果您想使用 ControlsFX 示例应用程序 只需 下载 ControlsFX 版本并在上运行以下命令 命令提示符 请务必将 替换为实
  • Java:如何复制对象数组?

    现在 我有一个 Point 对象数组 我想制作一个COPY该数组的 我尝试过以下方法 1 Point temp mypointarray 2 Point temp Point mypointarray clone 3 Point temp
  • Mongoose MongoDB:更新嵌套数组中的对象

    我有以下架构 var UserSchema new Schema emp no Number skills skill type Schema Types ObjectId ref Skill startDate type Date 然后我
  • 如何为Spring测试创建TestContext?

    我有一个相对较小的 Java 库 它实现了几十个 bean 没有数据库或 GUI 我创建了一个 Spring Bean 配置文件 其他 Java 项目使用该文件将我的 bean 注入到他们的东西中 我现在第一次尝试使用 Spring Tes
  • Spring Data 中 IQueryable 的等效项

    我习惯了 Net 和 LINQtoEntities 尤其是 IQueryable 部分 它允许在获取结果之前通过不同的函数传送请求 Spring数据中是否存在类似的东西 或者任何其他 java ORM 我希望能够做的基本示例 private
  • 使用 jar 外部的配置启动 .jar,但能够从任何当前目录执行此操作

    我一直在努力解决一个特定的问题 我在 jar 文件中有一个 Java 程序 并且在 jar 之外有一个 lib 目录和一个 config 目录 但与 jar 本身所在的目录位于同一目录中 我正在尝试参考config foo config从代

随机推荐

  • 奇怪的 if 语句

    我发现这很奇怪if 别人代码中的语句 if variable 1 0 我不明白 它应该有两个 right 有人可以解释一下吗 条件式是一个按位运算符 https wiki python org moin BitwiseOperators比较
  • Rails 管理自定义:将 html 视图嵌入到仪表板中

    我们已从 Rails 管理起始页面删除了仪表板和历史记录 现在我们想嵌入一个谷歌分析页面 供用户查看 GA 的仪表板 该页面由一些简单的 HTML 组成 问题 如何在 Rails 管理仪表板中嵌入 html 页面 答案很简单 我需要创建以下
  • Windows 上 python 的长路径 - os.stat() 对于相对路径失败?

    我想访问 Windows 上的一些长 UNC 路径 我知道我需要使用 UNC 前缀 即 UNC 如果你逃脱了斜线 效果很好 os stat UNC server example com that has long path aaaaaaaa
  • 静态方法和实例方法的方法参考

    对于 Java 中的实例方法 我无法理解方法引用的概念 例如 在下面的示例中 编译器在列表行中给出错误 我看过 String toUpperCase 的例子 我对这一点感到困惑 1 String是类 toUpperCase是实例方法 Jav
  • 当用户单击控制台窗口时代码停止执行

    我有一个控制台应用程序 无需用户交互即可执行我的代码 如果用户有意或无意地在控制台窗口内单击 所有执行都会停止 这与从控制台窗口复制文本有关 应用程序再次开始执行的唯一方法是用户选择文本 然后右键单击控制台窗口 将其复制到剪贴板 要查看实际
  • 新用户创建后使用 Dropzone.js 上传,发送标头

    我正在使用一个很棒的插件 dropzone js dropzonejs com 来让我的网站在注册新用户时更加漂亮 基本上 用户填写一个表单 将几个图像放入 dropzone 然后单击 提交 这会触发一个 ajax 调用 将表单发布到 ph
  • Safari 扩展弹出窗口链接

    是否可以在 Safari 弹出窗口中使用链接 我已经做了我能想到的所有事情 但似乎向弹出窗口添加链接只会改变外观 并且不会导致任何可点击的内容 无论是使用 href 还是 onclick 您可以在 href 或 div 上添加 onclic
  • asp.net mvc 树路径的复杂路由

    我想知道如何定义这样的路由映射 TreePath Action Id TreeMap 是从数据库动态加载的 如下所示 Gallery GalleryA SubGalleryA View 3 您可以创建自定义路由处理程序来执行此操作 实际路线
  • 当我从 Django 应用程序“打印”它们时,它们会去哪里?

    我在 Linux 服务器上有一个 Django 应用程序 在其中一种观点中 某种形式print命令被执行 并打印一些字符串 我怎样才能知道打印的字符串是什么 是否有一些日志保存这些东西 输出应该在 django 启动的终端中 如果你不直接启
  • Cassandra 中的强一致性

    根据datastax文章 可以保证强一致性 如果 R W gt N 在哪里 R是读操作的一致性级别 W为写操作的一致性级别 N 是副本数 这里的强一致性是什么意思呢 这是否意味着 每次 从数据库给出查询响应时 响应将 始终 是最后更新的值
  • 跨 AVX 通道的最佳方式是什么?

    有些问题具有类似的标题 但我的问题涉及其他地方未涵盖的一个非常具体的用例 我有 4 个 128d 寄存器 x0 x1 x2 x3 我想将它们的内容重新组合在 5 个 256d 寄存器 y0 y1 y2 y3 y4 中 以准备其他计算 on
  • 使用 C#/C++ 托管 VST/DX 仪器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我试图了解用 C 或 C 构建准系统虚拟仪器主机所需的工作量 但我无法获得任何硬信息 有人知道有什么好的
  • Pandas DataFrame MultiIndex groupby 滚动操作缺少日期

    我有一个数据框 其中有一个 MultiIndex 其中索引的最后一列是日期 我正在尝试以特定频率对列进行滚动操作 据我了解 如果我有 TimeIndex 通常的 pandas 方法是使用频率字符串调用滚动函数 例如 如果我希望窗口为两天 则
  • VB6 和 .PFX 代码签名

    我的老板已经从 Comodo 获得了证书 而我一直在努力寻找获得证书问题的解决方案intoVB6 应用程序 证书本身是 VB6 格式的 我对这类事情几乎一无所知 Comodo 的人真是太乐于助人了 我的老板说他可以在互联网上找到一些东西 显
  • 找出用于制作 JAR 的 Scala 版本

    我试图弄清楚使用哪个 Scala 版本进行编译A jar 我有两个版本 一个来自我的 ivy2 存储库 另一个来自 Maven 运行后jar xf A jar 我苦苦寻找scala and version 但什么也没发现 grep ri s
  • Mechanize 出现 SSL 错误

    我得到了这些命令irb require mechanize agent Mechanize new agent get https monabo lemonde fr customer account forgotpassword 我收到这
  • highcharts 弄错了我的时间

    highcharts 弄错了我的时间 我来自委内瑞拉 以防万一 我正在做一个实时系统 我可以在数据库中获取时间 秒和毫秒 例如 10 39 09 2 我应用 strtotime time 然后通过 json 发送到图表 在我的高图表中 我进
  • Seaborn 线图使用中位数而不是均值

    我在用着seaborn lineplot 创建像这样的线图 代表平均值的线 由代表标准差的带包围 sns lineplot x trial y rvalues hue subject err style band ci sd data df
  • 从文件中读取行,在第二个文件中 grep ,并为每个 $line 输出一个文件

    我有以下两个文件 sequences txt 158333741 Acaryochloris marina MBIC11017 uid58167 158333741 432 1 432 COG0001 0 158339504 Acaryoc
  • 如何在 spring-data-mongodb 框架中将 BigDecimal 转换为 Double

    Spring Data MongoDB 映射默认将 BigDecimal 转换为 String 但是 我希望它们在 mongodb 中转换为 Double 这是后者在 mongodb 中对该字段进行查询 比较查询 聚合查询 所必需的 我如何