在 jOOQ 中使用 PostgreSQL CITEXT 扩展
Using PostgreSQL CITEXT Extension with jOOQ
Postgres CITEXT 扩展有助于处理不区分大小写的数据。例如,这在处理电子邮件时很有用。参见 here and here。我定义了以下 table:
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>
当我 运行 代码生成器时,确实生成了字段,但日志输出中有很多 "missing name" 警告。例如:
[INFO] Generating routine : CitextLt.java
[WARNING] Missing name : Object citext_ne holds a column without a name at position 1
我是否在将 CITEXT 扩展与 jOOQ 集成的正确轨道上?
如果是这样,我该如何提供这些缺失的姓名?
本题有两个问题:
日志记录
WARN
水平可能有点过高了。我已经注册了一个问题以将其还原为 INFO
:https://github.com/jOOQ/jOOQ/issues/5385
您不必担心这些警告。 PostgreSQL 支持声明参数未命名且只能通过参数索引/位置引用的存储过程。 jOOQ的代码生成器只表示这是"unusual",生成了一个合成参数名
这应该不会影响您在 jOOQ 中使用 CITEXT。
你的强制类型配置
目前有一个错误会阻止您将用户定义的类型与 <types/>
匹配:http://github.com/jOOQ/jOOQ/issues/5363
只需删除您的 <types/>
元素,它就会起作用。
Postgres CITEXT 扩展有助于处理不区分大小写的数据。例如,这在处理电子邮件时很有用。参见 here and here。我定义了以下 table:
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>
当我 运行 代码生成器时,确实生成了字段,但日志输出中有很多 "missing name" 警告。例如:
[INFO] Generating routine : CitextLt.java
[WARNING] Missing name : Object citext_ne holds a column without a name at position 1
我是否在将 CITEXT 扩展与 jOOQ 集成的正确轨道上?
如果是这样,我该如何提供这些缺失的姓名?
本题有两个问题:
日志记录
WARN
水平可能有点过高了。我已经注册了一个问题以将其还原为 INFO
:https://github.com/jOOQ/jOOQ/issues/5385
您不必担心这些警告。 PostgreSQL 支持声明参数未命名且只能通过参数索引/位置引用的存储过程。 jOOQ的代码生成器只表示这是"unusual",生成了一个合成参数名
这应该不会影响您在 jOOQ 中使用 CITEXT。
你的强制类型配置
目前有一个错误会阻止您将用户定义的类型与 <types/>
匹配:http://github.com/jOOQ/jOOQ/issues/5363
只需删除您的 <types/>
元素,它就会起作用。