如何为名称没有共同点的列指定 jOOQ 数据类型绑定?

How to specify a jOOQ data type binding for columns whose name have nothing in common?

将 jOOQ 与 PostgreSQL 结合使用时,可以使用 custom data type binding,并在代码生成器中指定此类绑定应应用于哪些列。

然而,有时这些列没有任何共同点,即它们的名称完全不相关。有没有一种简单的方法可以为所有这些列指定绑定?

注:

The question came up on the jOOQ user manual。由于许多 jOOQ 用户都有问题,因此在此处复制以获得更好的可见性。

使用 SQL 查询从您的数据库中生成列列表以输入该正则表达式。类似于:

SELECT string_agg(n.nspname || '\.' || c.relname || '\.' || a.attname, '|')
FROM pg_namespace n
JOIN pg_class c ON c.relnamespace = n.oid
JOIN pg_attribute a ON a.attrelid = c.oid
JOIN pg_type t ON a.atttypid = t.oid
WHERE t.typname = 'json'

然后可以将此查询的结果提供给 jOOQ 的代码生成器配置