如何使用 JOOQ 确定固定长度数组数据库列的大小?
How to determine size of fixed length array database column using JOOQ?
鉴于此 PostgreSQL table 具有固定长度的数组列:
CREATE TABLE test (
id integer,
values integer[4],
);
JOOQ 代码生成是否会创建一个 java 常量或方法来提供可存储在值列中的元素的最大数量(即 4)?
阅读 JOOQ 关于代码生成和 SQL 数组支持的文档后,我找不到任何关于固定长度数组的具体信息。此外,在提供此信息的生成代码中没有任何内容让我感到惊讶。
不,jOOQ 的 3.9 版不知道数据库数组的任何固定大小或大小限制(无论是 PostgreSQL 数组类型还是 Oracle VARRAY
类型)。
我已经为此注册了功能请求 #5932。
我问这个问题的部分原因是我担心 PostgreSQL 数据库中的数组溢出。在研究了一种直接使用 SQL 来确定大小约束的方法后,我注意到 PostgreSQL ARRAY 文档中声明:
As before, however, PostgreSQL does not enforce the size restriction in any case.
根据该声明,似乎没有必要使用数组约束来强制大小,因为所有数组列似乎都被视为可变长度。因此,即使可以通过 JOOQ、Straight SQL 或任何其他方式检索 PostgreSQL 数组大小约束,何必呢?
鉴于此 PostgreSQL table 具有固定长度的数组列:
CREATE TABLE test (
id integer,
values integer[4],
);
JOOQ 代码生成是否会创建一个 java 常量或方法来提供可存储在值列中的元素的最大数量(即 4)?
阅读 JOOQ 关于代码生成和 SQL 数组支持的文档后,我找不到任何关于固定长度数组的具体信息。此外,在提供此信息的生成代码中没有任何内容让我感到惊讶。
不,jOOQ 的 3.9 版不知道数据库数组的任何固定大小或大小限制(无论是 PostgreSQL 数组类型还是 Oracle VARRAY
类型)。
我已经为此注册了功能请求 #5932。
我问这个问题的部分原因是我担心 PostgreSQL 数据库中的数组溢出。在研究了一种直接使用 SQL 来确定大小约束的方法后,我注意到 PostgreSQL ARRAY 文档中声明:
As before, however, PostgreSQL does not enforce the size restriction in any case.
根据该声明,似乎没有必要使用数组约束来强制大小,因为所有数组列似乎都被视为可变长度。因此,即使可以通过 JOOQ、Straight SQL 或任何其他方式检索 PostgreSQL 数组大小约束,何必呢?