JOOQ:根据其长度将tinyint映射为布尔值

时间:2018-08-05 12:06:10

标签: java mysql sql jooq

我当前的jooq-codegen-maven配置将所有tinyint(1)字段映射到Java的布尔值:

<forcedTypes>
    <forcedType>
        <name>BOOLEAN</name>
        <types>(?i:TINYINT)</types>
    </forcedType>
</forcedTypes>

问题是,在某些情况下,数据库包含标记为tinyint(3)的列,不应将其视为布尔值,而应将其视为真正的int。不幸的是,我找不到任何示例,文档中包含一些内容,但对我而言却并非如此:

<forcedType>
   <name>BOOLEAN</name>
   <types>TINYINT\(1\)</types>
</forcedType>

1 个答案:

答案 0 :(得分:2)

当前,jOOQ代码生成器不考虑TINYINT正则表达式使用<types/>之类的display width类型,只是因为它仅读取INFORMATION_SCHEMA.DATA_TYPE(而不包含INFORMATION_SCHEMA.COLUMN_TYPE(确实包含此信息)。

有一个待处理的功能请求,需要添加代码生成标记以将TINYINT(1)视为模拟的BOOLEAN类型:https://github.com/jOOQ/jOOQ/issues/7719

在此之前,您可能需要: