如何使用默认构造函数和setters生成pojos

时间:2019-07-11 16:25:08

标签: java code-generation jooq

首先,这是一个好主意吗(使用默认的构造函数和设置器生成/使用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'
      }
    }
  }
}

预先感谢您的想法和建议。

2 个答案:

答案 0 :(得分:0)

  

首先,这是一个好主意吗(使用默认的构造函数和设置器生成/使用pojo)?

做什么的好主意? jOOQ代码生成器无法判断您。一种支持使用默认构造函数和getter / setter的方法。不变的POJO是另一个。

  

如果是,那么如何使用代码生成器?

关闭immutablePojos的风格

pojos = true
immutablePojos = false

请注意,您不必将其关闭。默认是关闭它们。

答案 1 :(得分:0)

我刚刚发布了一个代码生成器,它可以完全满足您的需求。 (如果我说对了)

尝试https://github.com/carstenSpraener/cgV19 ist的HelloWorld示例中有一个PoJo生成器。支持

  • gradle插件
  • 模块化模型加载器
  • 满足不同需求的“墨盒”:
    • artridgeA:Java中的PoJo
    • cartridgeB:TypeScript中的PoJo