jOOQ 代码生成在触发器上失败 - 如何跳过它们?

Posted

技术标签:

【中文标题】jOOQ 代码生成在触发器上失败 - 如何跳过它们?【英文标题】:jOOQ code generation fails on triggers - how to skip them? 【发布时间】:2021-09-01 23:52:32 【问题描述】:

在我的应用程序中,我使用 Flyway 迁移数据库。我有一个包含数据库结构的 SQL 文件,其中包括一些 CREATE TRIGGER 语句。 jOOQ 代码生成失败,因为它使用不支持触发器的 H2。解决此问题的最佳方法是什么?

    我可以跳过关于代码生成的CREATE TRIGGER 语句吗? 将 CREATE TRIGGER 语句重构为单独的 SQL 文件。我可以根据文件名跳过 SQL 文件进行代码生成吗? 我可以使用例如docker 来启动一个 MariaDB 服务器,而不是使用 H2 来生成代码?

或者,也许您对如何处理触发器创建有更好或更好的想法?

【问题讨论】:

【参考方案1】:

您可以忽略以下某些语句:

-- [jooq ignore start]
-- Anything between these two tokens is ignored by the jOOQ parser
CREATE TRIGGER ...
-- [jooq ignore stop]

在此处查找文档:https://www.jooq.org/doc/3.1/manual/code-generation/codegen-ddl/#N90C34

【讨论】:

以上是关于jOOQ 代码生成在触发器上失败 - 如何跳过它们?的主要内容,如果未能解决你的问题,请参考以下文章

jOOQ loadInto 不会在外键约束上抛出错误失败

如何在使用 jooq 生成的 dao 插入/更新后获取插入/更新的对象

使用 JOOQ 更新 SQLITE 中的表行失败

如何以编程方式跳过摩卡中的测试?

尝试更新到“org.jooq:jooq-codegen-maven:3.15.1”时构建失败

如何将 2 条记录(多对一)的 Result 对象映射到 jOOQ 中它们各自的记录对象中?