我正在使用 JPADatabase 从我现有的 JPA 实体生成 JOOQ 类。从手册中,我知道 JPADatabase 内部使用 H2 数据库来读取元数据模式并生成代码。由于 H2 数据库没有 Numeric 的数据类型,而是具有 Decimal。因此,我所有的数字数据类型都转换为 SQLDataType.DECIMAL。
public final TableField<MyTableRecord, BigDecimal> NUM_FIELD = createField(DSL.name("NUM_FIELD"), SQLDataType.DECIMAL, this, "");
我什至尝试在运行代码生成时使用forcedType强制生成SQLDataType.NUMERIC,但结果仍然显示SQLDataType.DECIMAL。而且我发现它甚至适用于 Double,如果我将 SQLDataType.DOUBLE 放在强制类型中,但不适用于 SQLDataType.NUMERIC。
<forcedTypes>
<forcedType>
<name>NUMERIC</name>
<includeExpression>.*\.num_field</includeExpression>
<includeTypes>.*</includeTypes>
<nullability>ALL</nullability>
<objectType>ALL</objectType>
</forcedType>
</forcedTypes>
有没有办法让 JPADatabase 代码生成 SQLDataType.NUMERIC?