Interface JOOQ:如何使用matcher策略向生成的记录类添加多个接口

Interface JOOQ:如何使用matcher策略向生成的记录类添加多个接口,interface,record,jooq,Interface,Record,Jooq,在提供的答案的基础上,我试图使生成的记录实现多个接口。根据哪个正则表达式匹配(正则表达式A、正则表达式B或两者),生成的记录应该实现IFoo和IBar中的一个或两个 我确实有一个gradle jooq插件配置文件,但它在语义上应该等于: <generator> <strategy> <matchers> <tables> <table> <expression>RE

在提供的答案的基础上,我试图使生成的记录实现多个接口。根据哪个正则表达式匹配(正则表达式A、正则表达式B或两者),生成的记录应该实现IFoo和IBar中的一个或两个

我确实有一个gradle jooq插件配置文件,但它在语义上应该等于:

<generator>
  <strategy>
    <matchers>
      <tables>
        <table>
          <expression>REGEX_A</expression>
          <recordImplements>com.test.IFoo</recordImplements>
        </table>
        <table>
          <expression>REGEX_B</expression>
          <recordImplements>com.test.IBar</recordImplements>
        </table>
      </tables>
    </matchers>
  </strategy>
</generator>

正则表达式
com.test.IFoo
正则表达式
com.test.IBar
我得到的结果是,匹配两个匹配器的记录将只实现IFoo。这是预期的结果吗?是否有办法仅通过matcher配置实现我想要的功能?

仅应用第一个匹配的
规范 按照这些匹配器策略的工作方式,只有其
匹配的第一个
规范应用于生成的工件。随后的匹配将被忽略。这意味着您不能合并各种
规范。相反,您必须在开始时添加另一个与两个正则表达式匹配的规范,如下所示:


正则表达式A.*正则表达式B.*正则表达式B.*正则表达式A
com.test.IFoo,com.test.IBar
正则表达式
com.test.IFoo
正则表达式
com.test.IBar
为什么不合并各种
规范? 对于
,可以合并两个匹配的
匹配器规范,并让结果记录匹配所有接口实现规范,这似乎很有用


但是,对于
中的所有其他可能元素,如
等,情况并非如此,这就是为什么只有第一个匹配表达式应用于任何表的原因。为了不使这个功能不必要地复杂化,只应用了第一个匹配表达式。

问题是,我在第二个匹配器中增加了一行
com.test.IBar
,POJO之后也有了接口。显然两个匹配者都匹配,但只使用了第一个。@Sebastian:不应该是这样的。如果您认为这是一个bug,您是否可以提出一个新问题,并提供关于该事件的更多细节,或者创建一个问题?