java - 如何配置 jOOQ 使用 javax 注释或其他东西而不是 jakarta 注释来生成?

标签 java jooq jooq-codegen-maven

正如标题所说。 Jakarta 注释不在我的类路径中,所以我不知道为什么 jOOQ 使用这些注释生成 Java 类。我希望能够告诉它不要使用它,或者有一种方法来指定它使用哪些验证注释。

我设置为 true 的唯一属性是 validationAnnotations,然后我到处都有 Jakarta 注释。有什么想法如何将其配置为使用 javax 等其他东西吗?

我正在使用 jOOQ codegen 3.16.4

最佳答案

I just found the blog post above and I am not happy. The least they could have done is make it configurable.

我理解这种挫败感。我们都感受到了。您找到的文章对此进行了描述:“一股浪潮正在 Java 生态系统中荡漾。它将 javax 重命名为 jakarta 包名称。”

时钟在滴答作响。从 Spring Boot 3.0 开始,您无论如何都必须升级,甚至可能之前: https://spring.io/blog/2021/09/02/a-java-17-and-jakarta-ee-9-baseline-for-spring-framework-6

其他框架也将很快升级。是的,重命名对每个人来说都是痛苦的,但是永远维护两个依赖关系并没有太大的值(value),特别是如果库使用的功能与 jOOQ 一样少的话。

替代方案记录在 blog post you had referenced from a previous edit 中。社区几乎没有关于什么是更好的替代方案的反馈(当然也有人提示,但我不确定是否可以做更好的事情)。在您的特定情况下,您可以简单地用正则表达式替换所有生成的输出以再次修补导入。这就是 jOOQ 本身对生成的 JAXB 注释所做的事情,因为即使是生成代码的 XJC 插件也没有准备好进行这种困惑的重命名。

是的,可能有一个配置选项,但话又说回来,JAXB 和 JPA 的运行时依赖项又如何呢?这些不能轻易复制或配置。将两者都放在类路径上值得吗?或者发布两个单独的发行版?不太可能。与例如相比,这是一个不同的情况。 Hibernate,它严重依赖于规范,但 jOOQ 则不然。

I guess I will be using an old version.

当然可以。但话又说回来,这真的值得吗?您使用该功能的目的是什么?您可以放弃生成这些注释吗?

关于java - 如何配置 jOOQ 使用 javax 注释或其他东西而不是 jakarta 注释来生成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71254500/

相关文章:

postgresql - 如何在 PostgreSql 上与 Jooq 级联截断?

JOOQ forcedType 无法通过 JPADatabase 代码生成生成 NUMERIC SQL 数据类型

java - jooq 不支持 json 值

java - org.openqa.selenium.remote.service.DriverService$Builder.createArgs()Lcom/google/common/collect/ImmutableList;使用 Selenium 3.5.3 Chrome 76

java - Jaxb,避免重复的 xml 标签

postgresql - jOOQ - 插入...选择...返回

mysql - 什么是 Jooq 事务隔离级别?脏读会发生吗?

jooq - 在 JOOQ 中,我们如何使用 Java Instant 映射到 Postgresql 时间戳类型?

java - 我在这段 Java 代码中做错了什么?

java - 模拟 Mockito 中我们无法显式分配的内容