Как генерировать pojos с конструктором и сеттером по умолчанию - PullRequest
1 голос
/ 11 июля 2019

Во-первых, это хорошая идея (генерировать / использовать pojo с конструктором и установщиками по умолчанию)? Если да, то как это возможно с помощью генератора кода?

Я использую плагин nu.studer.jooq Gradle (https://github.com/etiennestuder/gradle-jooq-plugin) с jooq 3.11.9 и базой данных postgres.

// Generator
jooq {
  version = '3.11.9'
  edition = 'OSS'
  sample(sourceSets.main) {
    jdbc {
      driver = 'org.postgresql.Driver'
      url = 'jdbc:postgresql://localhost:5432/mydb'
      user = 'myuser'
      password = 'mypwd'
//      properties {
//        property {
//          key = 'ssl'
//          value = 'true'
//        }
//      }
    }
    generator {
      name = 'org.jooq.codegen.DefaultGenerator'
      strategy {
        name = 'org.jooq.codegen.DefaultGeneratorStrategy'
      }
      database {
        name = 'org.jooq.meta.postgres.PostgresDatabase'
        inputSchema = 'public'
        forcedTypes {
          forcedType {
            name = 'varchar'
            expression = '.*'
            types = 'JSONB?'
          }
          forcedType {
            name = 'varchar'
            expression = '.*'
            types = 'INET'
          }
        }
      }
      generate {
        relations = true
        deprecated = false
        records = true
        immutablePojos = true
        fluentSetters = true
      }
      target {
        packageName = 'com.project.generated'
        directory = 'src/main/java'
      }
    }
  }
}

Заранее благодарю за ваши идеи и советы.

1 Ответ

0 голосов
/ 11 июля 2019

Во-первых, это хорошая идея (генерировать / использовать pojo с конструктором и установщиками по умолчанию)?

Хорошая идея для чего? Генератор кода jOOQ не судит вас. Использование конструкторов по умолчанию и методов получения / установки является одним из поддерживаемых вариантов. Неизменные POJOs другой.

Если да, как это возможно с помощью генератора кода?

Отключить жанрацию immutablePojos

pojos = true
immutablePojos = false

Обратите внимание, что вам не нужно выключать это. По умолчанию они отключены.

...