使用PostgreSQL CITEXT扩展与jOOQ

时间:2016-07-02 07:55:37

标签: postgresql jooq

Postgres CITEXT扩展有助于处理不区分大小写的数据。例如,这在处理电子邮件时非常有用。请参阅herehere。我已经定义了下表:

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整合在一起?

如果是这样,我如何提供这些缺失的名称?

1 个答案:

答案 0 :(得分:1)

这个问题有两个问题:

登录

WARN级别可能有点过分。我已将问题还原到INFOhttps://github.com/jOOQ/jOOQ/issues/5385

您不必担心这些警告。 PostgreSQL支持声明其参数未命名的存储过程,并且只能通过参数索引/位置引用。 jOOQ的代码生成器仅指示这是“异常”并且生成合成参数名称。

这不应影响您使用JOOQ使用CITEXT。

您的强制类型配置

目前有一个错误阻止您将用户定义的类型与<types/>匹配:http://github.com/jOOQ/jOOQ/issues/5363

只需删除您的<types/>元素即可。