在我的jOOQ配置文件中,我为DATE字段定义了一个转换器,但是我在forcedType的部分中定义了类型的条件时遇到了一些问题。
为了测试我表达了:
<expression>.*</expression>
和类型:
<types>DATE</types>
我希望匹配数据类型为DATE的所有列。 相反,它不匹配任何一个列,其中一个列的类型是DATE,就像它不匹配的其他列,但是这个列的列为def:CURRENT DATE,似乎它与此匹配。
为了使其有效,我必须使用:
<types>.*DATE.*</types>
有人可以解释一下吗? 我使用Derby作为db。
感谢您的帮助
使用示例进行更新
我在各种表中都有这些字段:
表A:
INSERT_DATE DATE NOT NULL
表B:
CREATION_DATE DATE NOT NULL
表C:
RELEASE_DATE DATE DEFAULT CURRENT DATE
将forcedTypes与<expression>.*</expression>
和<types>DATE</types>
在使用jOOQ生成代码后,只有表C上的字段正在使用转换器。 表A,B中的那些被忽略。我看到的唯一区别是&#34; CURRENT DATE&#34;
答案 0 :(得分:1)
这似乎是jOOQ中的一个错误,我已在GitHub上注册,现在:
看起来馈入<forcedType/>
评估的类型包含来自Derby的DDL的NOT NULL
子句。在应用这些<forcedTypes/>
时,有一个相关问题需要更多日志记录信息:
修复此错误之前的解决方法是使用正则表达式保持安全,类似于您使用的或更好的:
<types>DATE.*</types>