代码生成器将NUMERIC(20,0)解释为BIGDECIMAL,同时应将其解释为Long

时间:2011-07-17 09:57:53

标签: sql types numeric jooq

我有一个字段名为“BID”的表,其数据类型设置为NUMERIC(20,0)。现在我知道它永远不会是十进制/浮点值,但总是一个int / long,即一个自然数。

代码生成器是否有办法使生成的模型类中的变量为Long,而不是当前生成的java.math.BigDecimal。可以在jooq.properties中设置吗?

1 个答案:

答案 0 :(得分:1)

此“功能”目前仅适用于Oracle数据库,其中NUMBER是唯一可用的数字类型。将Oracle与jOOQ一起使用时,NUMBER(20, 0)将映射到java.math.BigInteger而不是java.math.BigDecimal

下一版本1.6.3中的其他RDBMS也可以使用此行为。参见

https://sourceforge.net/apps/trac/jooq/ticket/639

除此之外,目前无法覆盖代码生成器中的数据类型映射,但如果您不需要20位十进制数字,则可以使用gbn建议的BIGINTBIGINT可以容纳大多数19位小数......