如何用jOOQ去除类名中的表名前缀?

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

我正在使用

jooq-codegen
从我的数据库模式生成 Java 类,但我遇到了表名前缀的问题。例如,一个名为
t_user
的表最终会生成一个名为
TUser
的类,而我希望它是
User
(不带“T”前缀)。

如何配置

jooq-codegen
以在类生成期间从表名称中删除特定前缀?任何有关 XML 配置文件中可能的配置或解决方法的建议将不胜感激。

谢谢!

我检查了jOOQ文档,找到了添加前缀的示例,但似乎没有直接删除前缀的方法。

<configuration>
  <generator>
    <strategy>
      <matchers>
        <tables>
          <table>
            <tableIdentifier>
              <transform>UPPER</transform>
              <expression>T_$0</expression>
            </tableIdentifier>
            <tableClass>
              <transform>PASCAL</transform>
              <expression>T_$0</expression>
            </tableClass>
          </table>
        </tables>
      </matchers>
    </strategy>
  </generator>
</configuration>
java jooq jooq-codegen-maven jooq-codegen spring-boot-jooq
1个回答
0
投票

这样做:

<configuration>
  <generator>
    <strategy>
      <matchers>
        <tables>
          <table>

            <!-- Match only relevant tables, capture the name suffix -->
            <expression>T_(.*)</expression>

            <!-- Reference the captured group $1 -->
            <tableIdentifier>
              <transform>UPPER</transform>
              <expression>$1</expression>
            </tableIdentifier>
            <tableClass>
              <transform>PASCAL</transform>
              <expression>$1</expression>
            </tableClass>
          </table>
        </tables>
      </matchers>
    </strategy>
  </generator>
</configuration>
© www.soinside.com 2019 - 2024. All rights reserved.