在jooq的POJO类中使用Lombok的Data注解

news/2025/1/9 5:27:43/文章来源:https://www.cnblogs.com/somefuture/p/18650620

jooq生成pojo类的配置根据官方给的如下:
https://www.jooq.org/doc/3.14/manual/getting-started/tutorials/jooq-in-7-steps/jooq-in-7-steps-step3/


如果想要使用lombok注解,需要自定义生成器。

原生的参数并不足够支持这样做。

另外一般也不需要这样做,因为更推荐把生成的代码放到 target/generated-sources 下面

自定义类如下:

import org.jooq.codegen.GeneratorStrategy;
import org.jooq.codegen.JavaGenerator;
import org.jooq.codegen.JavaWriter;
import org.jooq.meta.TableDefinition;
import org.jooq.meta.TypedElementDefinition;
import org.jooq.tools.StringUtils;public class LombokJavaGenerator extends JavaGenerator {@Overrideprotected void generatePojo(TableDefinition table, JavaWriter out) {final String className = getStrategy().getJavaClassName(table, GeneratorStrategy.Mode.POJO);printPackage(out, table, GeneratorStrategy.Mode.POJO);generatePojoClassJavadoc(table, out);out.println("@lombok.Data");out.println("public class %s {", className);for (TypedElementDefinition<?> column : table.getColumns()) {out.println("private %s%s %s;",generateImmutablePojos() ? "final " : "",StringUtils.rightPad(out.ref(getJavaType(column.getType(resolver(out, GeneratorStrategy.Mode.POJO)), out, GeneratorStrategy.Mode.POJO)), 0),getStrategy().getJavaMemberName(column, GeneratorStrategy.Mode.POJO));}generatePojoClassFooter(table, out);out.println("}");closeJavaWriter(out);}}

然后替换这个name就行
image


上面的修改使得新的POJO有几处变化:

  • 去掉了类序列化接口和号
  • 增加了lombok.Data注解
  • 去掉了构造器和copy构造方法
  • 去掉了equals方法(hashCode)
  • 去掉了所有的getter/setter
  • 去掉了toString方法
  • 去掉了字段的空格对其

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/863468.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01.03 CW 模拟赛 T1. math

前言 赛场上 \(\rm{while}\) 打成 \(\rm{if}\) 痛失 \(40 \rm{pts}\) 不过下来看是贪心的话也没什么好做的了, 一般都不会 对了这是题目 题目下载 \(\rm{sol}\) 方法 \(1\) : 逐位计算 思路 显然的是你需要把数字从大到小填入, 使得高位的数尽量大, 这个显然 由上面的结论可以知…

电商团队信息共享的最佳方案:在线协同工具的应用

电商行业发展迅速,竞争也日益激烈,团队协作效率已成为企业能否脱颖而出的决定性因素。一个高效的电商团队不仅需要快速反应和高效执行,更需要具备流畅的沟通和协同机制。而在线协同编辑文档工具,正是推动这一机制的核心工具之一。 电商团队架构的挑战与需求 电商团队通常由…

体验领礼啦!体验自建数据库迁移到阿里云数据库RDS,领取桌面置物架!

​「技术解决方案【Cloud Up 挑战赛】」上线了! RDS MySQL 支持实例管理、账号管理、数据库管理、备份恢复、白名单、透明数据加密以及数据迁移等基本功能,还支持读写分离、SQL审计、多可用区集群等高级功能。经过双十一高并发、大数据量的考验,RDS MySQL 拥有优良的性能。 …

接入企业微信审批开发记录

背景 客户提了关于对接企业微信【审批】功能的需求,具体需求包括: 1、当企业微信审批流程到达某个节点后,能将审批信息推送到我们系统,或者我们系统能够拉取某个流程的信息; 2、能在审批流程中嵌套一个评价节点,跳转我们系统的评价页面。1 调研企业微信是否支持 根据这篇…

并发编程 StampedLock

StampedLock是JDK8引入的,是为了优化读的性能乐观读:tryOptimisticRead方法内没有加任何锁,在真正进行读取操作之前要进行一次查验,即validate,因为在获取stamp后,到读取操作之间,可能会有并发问题。 如果查验结果为false,就会升级为读锁

【硬件测试】基于FPGA的8PSK调制解调系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR

1.算法仿真效果 本文是之前写的文章:基于FPGA的8PSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR-CSDN博客的硬件测试版本。在系统在仿真版本基础上增加了ila在线数据采集模块,vio在线SNR设置模块,数据源模块。硬件ila测试结果如下:(完整代码运…

Linux 安装和配置openssl

使用python3.10版本时遇到无法加载.ssl的报错,解决方法如下: 1. 检查openssl的当前版本,如果已经是openssl-1.1.1w,则跳过下文,应该不是同一个问题。openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 2. 下载openssl-1.1.1w版本的压缩包 openssl-1.1.1w.tar.gz3. 解压压…

【Java 温故而知新系列】基础知识-04 重点关键字(面试经常遇到的)

1、final 在 Java 中,final 关键字可以用于变量、方法和类,分别赋予它们不同的语义和行为。以下是 final 关键字的主要作用 修饰变量 当 final 修饰一个变量时,表示该变量的值一旦初始化后就不能再被改变。这适用于基本类型和引用类型。基本类型:对于基本类型(如 int, do…

春节不打烊,超市管理工具如何助力商家应对销售高峰

春节超市管理工具种类繁多,每种工具都有其独特的功能和优势。在选择工具时,超市应根据自身的需求和实际情况进行选择,以确保管理效率和服务质量的提升。春节期间,超市管理工具种类繁多,这些工具旨在帮助超市高效管理库存、促进销售、调度员工以及提升顾客服务质量。以下是…

vue3 在渲染md中的数学公式

常规的md转数学公式插件无法解决此问题 问题: 在渲染过程中 \t 被转义 导致渲染出错**方案为:将\t 转义为\t ** 依赖的插件及版本"katex": "^0.16.15","markdown-it": "^14.1.0","markdown-it-katex": "^2.0.3",…

重新定义电商团队协作:在线文档工具的战略作用

在当今快速发展的电商行业,团队协作效率对业务成功至关重要。尤其是跨部门沟通和信息共享,已经成为提升电商团队组织架构优化的关键因素。而一个功能强大的在线协同编辑文档工具正是提升这些关键环节的解决方案之一。 电商团队组织架构的挑战 电商企业通常面临复杂的业务流程…

基于海豚调度功能开发——推送下游系统数据库连接信息批量修改方案与实现

功能需求背景 由于信创(信息技术应用创新产业)改造要求,上个月已将从数据仓库推送下游官网系统的ORACLE数据库相关数据推送任务迁移到信创人大金仓临时数据库,整体任务完成切换上线并试运行稳定。 由于年底需要进行信创数据库的正式上线,目前需要将人大金仓临时数据库切换…