如何在jooq中实现多重/组合/组合生成策略?

问题描述 投票:0回答:1

我有:

                    .withStrategy(Strategy().apply {
                        name = "rcp.RenamingStrategy"
                        matchers = Matchers().withTables(MatchersTableType().apply {
                            tableImplements = "rcp.framework.db.EntityTable"
                            pojoImplements = "rcp.framework.db.Entity"
                            recordImplements = "rcp.framework.db.Record"
                            interfaceImplements = "rcp.framework.db.DbInterface"
                        })
                    })

这行不通;仅适用指定策略或匹配器之一(两者均未注释,匹配器优先)。将它们分开的两个 .withStrategy 子句也不起作用。

我确实在 DefaultGeneratorStrategy 中找到了

getJavaClassImplements(definition: Definition?, mode: Mode?): MutableList<String>
,但模式似乎不完整 - 没有“表”模式。表以 DEFAULT 传递,但枚举和各种其他杂项对象也是如此。

有没有办法用单一策略来完成我想要做的事情?目标是为基本的通用功能创建一个 dao 实现,其中包括 jooq 的 dao 生成所没有的业务逻辑,为此我需要围绕我控制的各种类型的对象的接口。

jooq
1个回答
0
投票

目前,您无法结合使用这两种类型的策略。很难看出这样的组合应该如何工作,因为

GeneratorStrategy
是一个具有强制实现(通常来自默认实现)并且没有任何优先级的接口。

但模式似乎不完整——没有“桌子”模式。表以 DEFAULT 传递,但枚举和各种其他杂项对象也是如此。

Mode
只是告诉您某个
Definition
类型的生成处于什么“模式”。例如。对于
TableDefinition
,有:

  • DEFAULT
    Table
    对象
  • RECORD
    TableRecord
    对象
  • DAO
    The 
    DAO`对象
  • 等等

因此,您必须实施

definition is TableDefinition
检查以仅将策略应用于表。

© www.soinside.com 2019 - 2024. All rights reserved.