我有一个字段名为“BID”的表,其数据类型设置为NUMERIC(20,0)。现在我知道它永远不会是十进制/浮点值,但总是一个int / long,即一个自然数。
代码生成器是否有办法使生成的模型类中的变量为Long,而不是当前生成的java.math.BigDecimal。可以在jooq.properties中设置吗?
答案 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建议的BIGINT
。 BIGINT
可以容纳大多数19位小数......