给出以下sql
create table something(
id BIGSERIAL,
something TEXT[] NOT NULL DEFAULT '{}',
PRIMARY KEY (id)
);
并指示代码生成器使用DDLDatabase生成的项目的形式为
public final TableField<JSomethingRecord, Object[]> SOMETHING_
在文档中环顾四周,我找不到如何在String[]
中进行映射。varchar
和varchar(255)
同样适用。我不必在这里使用强制类型,因为至少三个应该是有效数据类型并且不会像OTHER
那样回退到UUID
(我看到有一个关于强制类型的示例)
我是不是在做/了解错误的东西,或者这是预期的行为?
我正在使用的数据库是PostGres,生成器配置如下
<generator>
<database>
<name>org.jooq.meta.extensions.ddl.DDLDatabase</name>
<inputCatalog/>
<inputSchema>PUBLIC</inputSchema>
<properties>
<property>
<key>use-attribute-converters</key>
<value>true</value>
</property>
<property>
<key>scripts</key>
<value>src/main/resources/db/migration/*</value>
</property>
</properties>
</database>
<target>
<clean>true</clean>
<packageName>my.other.package</packageName>
<directory>target/generated-sources/jooq</directory>
</target>
</generator>
提前谢谢您
从jOOQ 3.13开始,DDLDatabase
尚不支持PostgreSQL的类型化数组,因为DDLDatabase
的当前实现将DDL转换为幕后的H2,而H2 1.4.200的ARRAY
类型不支持Object[]
以外的任何其他类型的数组。
将来会更改为:
在此之前,为了使用此类特定于PostgreSQL的功能,我建议使用连接到实际PostgreSQL数据库实例的经典方法。