Postgres CITEXT扩展有助于处理不区分大小写的数据。例如,这在处理电子邮件时非常有用。请参阅here和here。我已经定义了下表:
CREATE EXTENSION citext;
CREATE TABLE user (
user_id INTEGER PRIMARY KEY,
email CITEXT NOT NULL UNIQUE,
password TEXT NOT NULL,
salt TEXT NOT NULL
);
并将以下内容添加到pom.xml中的<database>
部分:
<forcedType>
<name>CLOB</name>
<expression>public.user.email</expression>
<types>CITEXT</types>
</forcedType>
</forcedTypes>
当我运行代码生成器时,会生成字段,但日志输出中有很多“缺少名称”警告。例如:
[INFO] Generating routine : CitextLt.java
[WARNING] Missing name : Object citext_ne holds a column without a name at position 1
我是否正在将CITEXT extesion与jOOQ整合在一起?
如果是这样,我如何提供这些缺失的名称?
答案 0 :(得分:1)
这个问题有两个问题:
WARN
级别可能有点过分。我已将问题还原到INFO
:https://github.com/jOOQ/jOOQ/issues/5385
您不必担心这些警告。 PostgreSQL支持声明其参数未命名的存储过程,并且只能通过参数索引/位置引用。 jOOQ的代码生成器仅指示这是“异常”并且生成合成参数名称。
这不应影响您使用JOOQ使用CITEXT。
目前有一个错误阻止您将用户定义的类型与<types/>
匹配:http://github.com/jOOQ/jOOQ/issues/5363
只需删除您的<types/>
元素即可。