鉴于此PostgreSQL表具有固定长度的数组列:
CREATE TABLE test (
id integer,
values integer[4],
);
JOOQ代码生成是否会创建一个java常量或方法,提供可以存储在values列中的最大元素数(即4)?
在阅读了关于代码生成和SQL数组支持的JOOQ文档之后,我找不到任何关于固定长度数组的具体内容。此外,在生成的提供此信息的代码中没有任何内容跳出来。
答案 0 :(得分:1)
不,jOOQ的3.9版本不知道数据库阵列的任何固定大小或大小限制(PostgreSQL数组类型和Oracle VARRAY
类型都没有。)
我已为此注册了功能请求#5932。
答案 1 :(得分:1)
我问这个问题部分是因为我担心PostgreSQL数据库中的数组溢出。在研究了使用直接SQL来确定大小约束的方法之后,我注意到PostgreSQL ARRAY文档做了声明:
然而,和以前一样,PostgreSQL在任何情况下都不会强制执行大小限制。
基于该语句,似乎不需要使用数组约束来强制执行大小,因为所有数组列似乎都被视为可变长度。因此,即使可以通过JOOQ,Straight SQL或任何其他方法检索PostgreSQL数组大小约束,为什么还要麻烦?