我有:
.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 生成所没有的业务逻辑,为此我需要围绕我控制的各种类型的对象的接口。
目前,您无法组合这两种类型的策略。很难看出这样的组合应该如何工作,因为 a
GeneratorStrategy
是一个具有强制实现(通常来自默认实现)并且没有任何优先级的接口。Mode
只是告诉您某种类型的生成处于什么“模式”Definition
。例如对于TableDefinition
,有:DEFAULT
:Table
物体RECORD
:TableRecord
物体DAO
:The
DAO` 对象因此,您必须实施
definition is TableDefinition
检查以仅将策略应用于表。