Available in versions: Dev (3.20) | Latest (3.19)

This documentation is for the unreleased development version of jOOQ. Click on the above version links to get this documentation for a supported version of jOOQ.

Matching primary keys

Applies to ✅ Open Source Edition   ✅ Express Edition   ✅ Professional Edition   ✅ Enterprise Edition

The following example shows how to define a MatcherStrategy for generated org.jooq.UniqueKey types, which are primary keys, and related objects:

XML (standalone and maven)
Programmatic
Gradle (Kotlin)
Gradle (Groovy)
Gradle (third party)
<configuration>
  <!-- These properties can be added directly to the generator element: -->
  <generator>
    <strategy>
      <matchers>

        <!-- Specify 0..n primary key matchers to provide a strategy for naming objects created from primary keys. -->
        <primaryKeys>
          <primaryKey>

            <!-- Match unqualified or qualified primary key names. If left empty, this matcher applies to all primary keys. -->
            <expression>MY_PK_NAME</expression>

            <!-- This influences the identifier in the generated Keys class -->
            <keyIdentifier> a MatcherRule specification </keyIdentifier>
          </primaryKey>
        </primaryKeys>
      </matchers>
    </strategy>
  </generator>
</configuration>

See the configuration XSD, standalone code generation, and maven code generation for more details.

new org.jooq.meta.jaxb.Configuration()

  // These properties can be added directly to the generator element:
  .withGenerator(new Generator()
    .withStrategy(new Strategy()
      .withMatchers(new Matchers()

        // Specify 0..n primary key matchers to provide a strategy for naming objects created from primary keys.
        .withPrimaryKeys(
          new MatchersPrimaryKeyType()

            // Match unqualified or qualified primary key names. If left empty, this matcher applies to all primary keys.
            .withExpression("MY_PK_NAME")

            // This influences the identifier in the generated Keys class
            .withKeyIdentifier(MatcherRule. a MatcherRule specification )
        )
      )
    )
  )

See the configuration XSD and programmatic code generation for more details.

import org.jooq.meta.jaxb.*


configuration {

  // These properties can be added directly to the generator element:
  generator {
    strategy {
      matchers {

        // Specify 0..n primary key matchers to provide a strategy for naming objects created from primary keys.
        primaryKeys {
          primaryKey {

            // Match unqualified or qualified primary key names. If left empty, this matcher applies to all primary keys.
            expression = "MY_PK_NAME"

            // This influences the identifier in the generated Keys class
            keyIdentifier = MatcherRule. a MatcherRule specification 
          }
        }
      }
    }
  }
}

See the configuration XSD and gradle code generation for more details.

configuration {

  // These properties can be added directly to the generator element:
  generator {
    strategy {
      matchers {

        // Specify 0..n primary key matchers to provide a strategy for naming objects created from primary keys.
        primaryKeys {
          primaryKey {

            // Match unqualified or qualified primary key names. If left empty, this matcher applies to all primary keys.
            expression = "MY_PK_NAME"

            // This influences the identifier in the generated Keys class
            keyIdentifier = " a MatcherRule specification "
          }
        }
      }
    }
  }
}

See the configuration XSD and gradle code generation for more details.

generationTool {

  // These properties can be added directly to the generator element:
  generator {
    strategy {
      matchers {

        // Specify 0..n primary key matchers to provide a strategy for naming objects created from primary keys.
        primaryKeys {
          primaryKey {

            // Match unqualified or qualified primary key names. If left empty, this matcher applies to all primary keys.
            expression = "MY_PK_NAME"

            // This influences the identifier in the generated Keys class
            keyIdentifier = " a MatcherRule specification "
          }
        }
      }
    }
  }
}

See the configuration XSD and gradle code generation for more details.

As always, when regular expressions are used, they are regular expressions with default flags.

See MatcherRule for more information about MatcherRule specifications.

Feedback

Do you have any feedback about this page? We'd love to hear it!

The jOOQ Logo