2

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

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

我正在使用 jOOQ 代码生成 3.16.4

4

1 回答 1

1

我刚刚找到上面的博客文章,我不高兴。他们至少可以做的是使其可配置。

我理解这种沮丧。我们都感觉到了。您找到的文章对此进行了描述:“一股浪潮正在席卷 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

其他框架也将很快升级。重命名对每个人来说都是痛苦的,是的,但是永远维护两个依赖项并没有太大的价值,特别是如果库使用像 jOOQ 这样少的特性。

替代方案记录在您从之前的编辑中引用的博客文章中。社区几乎没有关于什么是更好的选择的反馈(当然有抱怨,但我不确定是否可以做更好的事情)。在您的特定情况下,您可以简单地正则表达式替换所有生成的输出以再次修补导入。这就是 jOOQ 本身对生成的 JAXB 注释所做的事情,因为即使是生成代码的 XJC 插件也没有准备好进行这种混乱的重命名。

是的,本来可以有一个配置选项,但话说回来,对于 JAXB 和 JPA 的运行时依赖关系呢?这些不能轻易复制或配置。将两者都放在类路径上是否值得?还是要运送两个单独的发行版?不太可能。与 Hibernate 相比,这是一个不同的情况,后者在很大程度上取决于规范,但 jOOQ 并没有,真的。

我想我将使用旧版本。

你当然可以。但话说回来,这真的值得吗?你用这个功能做什么?你能不生成这些注释吗?

于 2022-02-24T16:31:21.263 回答