如何在jOOQ生成器中将所有DATE列强制为LocalDateTime?

时间:2019-04-04 07:23:54

标签: java sql jooq

我想将所有Oracle DATE列都强制为LocalDateTime。

我尝试过的事情:

<forcedType>
    <name>LOCALDATETIME</name>
    <userType>java.time.LocalDateTime</userType>
    <types>DATE\(*\)</types>
</forcedType>

但是jOOQ仍然会生成LocalDate。

forcedType的外观如何?

1 个答案:

答案 0 :(得分:1)

您的<types>表达式为“ DATE,后跟任意数量的(,后跟一个)。您可能想要这样:

<types>DATE(\(.*\))?</types>

请注意:您实际上并不需要指定<userType>就能从"data type rewriting"功能中受益。指定与SQLDataType中的类型匹配的名称即可。

错误

请注意,jOOQ 3.11中存在一个错误,<name>LOCALDATETIME</name>无效:https://github.com/jOOQ/jOOQ/issues/8493

此问题已在jOOQ 3.12中修复。暂时使用<name>TIMESTAMP</name>代替<javaTimeTypes>