我当前的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>
答案 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
在此之前,您可能需要:
<forcedType/>
规范中的所有布尔类型INFORMATION_SCHEMA.COLUMN_TYPE
的地方写一个programmatic code generator configuration,以生成需要强制键入BOOLEAN
的列集