如何使用默认构造函数和设置器生成 pojo
Posted
技术标签:
【中文标题】如何使用默认构造函数和设置器生成 pojo【英文标题】:How to generate pojos with default constructor and setters 【发布时间】:2019-11-21 10:21:06 【问题描述】:首先,这是一个好主意(使用默认构造函数和设置器生成/使用 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】:首先,这是一个好主意(使用默认构造函数和设置器生成/使用 pojo)吗?
做什么的好主意? jOOQ 代码生成器不会评判您。使用默认构造函数和 getter/setter 是一种受支持的风格。不可变 POJO 是另一种。
如果是,如何使用代码生成器?
关闭immutablePojos
的类型
pojos = true
immutablePojos = false
请注意,您不必将其关闭。默认是关闭它们。
【讨论】:
就是这么简单...不知道为什么,我在文档中没有找到解决方案。我会查的。非常感谢。我需要默认的构造函数和设置器,因为一些 pojo 有很长的属性列表,但只有少数是强制性的:纯美学【参考方案2】:我刚刚发布了一个代码生成器,它完全符合您的要求。 (如果我没听错的话)
试试https://github.com/carstenSpraener/cgV19 ist 在它的 HelloWorld 示例中有一个 PoJo 生成器。支持
gradle 插件 模块化模型加载器 “墨盒”满足不同需求: 墨盒 A:Java 中的 PoJo 墨盒 B:TypeScript 中的 PoJo【讨论】:
根据您的链接的域/URL 与您的用户名相同或包含您的用户名,您似乎已链接到您自己的内容。如果你这样做,你需要披露它是你的。如果您不透露这是您自己的内容,则通常将其视为垃圾邮件。请参阅:What signifies "Good" self promotion? 和 How to not be a spammer。以上是关于如何使用默认构造函数和设置器生成 pojo的主要内容,如果未能解决你的问题,请参考以下文章
如何在构造函数中使用删除器初始化 std::unique_ptr?