You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL下JOOQ如何配置forceType实现BigInteger转BigDecimal

前置修正说明

你提供的自定义转换器存在两处可优化点,建议先调整:

  1. 类名与构造方法名不匹配,需统一,示例统一类名为BigIntToBigDecConverter,后续配置以该类名为准
  2. to方法中直接取intValue()会存在精度丢失风险,建议修改为:
@Override
public BigInteger to(BigDecimal userObject) {
    return userObject.toBigInteger();
}

JOOQ代码生成XML forceType配置

针对myTable表的myColumn字段单独适配的配置如下,放在代码生成配置的<database>节点下的<forcedTypes>节点中:

<forcedType>
    <userType>java.math.BigDecimal</userType>
    <converter>com.yourpackage.BigIntToBigDecConverter</converter>
    <expression>public\.myTable\.myColumn</expression>
</forcedType>

注意将com.yourpackage替换为你实际存放转换器类的包路径,PostgreSQL默认schema为public,如果你自定义了schema请同步替换。

可选配置扩展

如果需要调整匹配范围,可以修改匹配规则:

  • 全局匹配所有PostgreSQL BIGINT类型转换为BigDecimal:替换<expression>节点为<types>BIGINT</types>
  • 匹配所有表中名为myColumn的BIGINT字段:将<expression>值修改为.*\.myColumn

内容的提问来源于stack exchange,提问作者moovon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:06:03