正如标题所说。 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/