Jooq pojoImplements:视图与 table
Jooq pojoImplements: view vs table
我有一个包含 table 和视图的数据库。我使用 JOOQ 生成 java 代码来与数据交互。
我希望为任何 table 生成的每个 pojo 都实现我的自定义界面。我已经使用 pojoImplements 完成了这项工作。
仅 table 需要此行为,我不希望为视图生成的 pojo 实现该自定义界面。
是否有任何方法(可能在表达式中?)将一些规则应用于 table 并将其他规则应用于视图?
目前执行此操作的唯一方法是使用匹配对象名称的 <expression>
标志,例如
<tables>
<table>
<expression>EXPRESSION_MATCHING_ONLY_TABLES</expression>
<pojoImplements>...</pojoImplements>
</table>
</tables>
如果您有严格的命名约定(例如 T_TABLE
和 V_VIEW
等),您可以在正则表达式中使用前缀,例如 T_.*?
,或者您必须显式匹配所有 table 个名称。
如果您使用的是 programmatic code generator configuration,则可以使用查询生成该正则表达式。在 PostgreSQL 中,该查询可能如下所示:
SELECT string_agg(table_name, '|')
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_type = 'BASE TABLE'
我有一个包含 table 和视图的数据库。我使用 JOOQ 生成 java 代码来与数据交互。
我希望为任何 table 生成的每个 pojo 都实现我的自定义界面。我已经使用 pojoImplements 完成了这项工作。
仅 table 需要此行为,我不希望为视图生成的 pojo 实现该自定义界面。
是否有任何方法(可能在表达式中?)将一些规则应用于 table 并将其他规则应用于视图?
目前执行此操作的唯一方法是使用匹配对象名称的 <expression>
标志,例如
<tables>
<table>
<expression>EXPRESSION_MATCHING_ONLY_TABLES</expression>
<pojoImplements>...</pojoImplements>
</table>
</tables>
如果您有严格的命名约定(例如 T_TABLE
和 V_VIEW
等),您可以在正则表达式中使用前缀,例如 T_.*?
,或者您必须显式匹配所有 table 个名称。
如果您使用的是 programmatic code generator configuration,则可以使用查询生成该正则表达式。在 PostgreSQL 中,该查询可能如下所示:
SELECT string_agg(table_name, '|')
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_type = 'BASE TABLE'