当前位置: 首页 > 知识库问答 >
问题:

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

傅恺
2023-03-14

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

我唯一设置为true的属性是validationAnnotations,然后到处都有雅加达注释。你知道如何配置它来使用javax之类的东西吗?

我使用的是jOOQ codegen 3.16.4

共有1个答案

诸葛文博
2023-03-14

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

我理解这种沮丧。我们都感觉到了。你找到的那篇文章对此进行了描述:“一股浪潮正在Java生态系统中荡漾。这就是将javax重命名为雅加达包名。”

时钟在滴答作响。从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的运行时依赖性呢?这些不容易复制或html" target="_blank">html" target="_blank">配置。在类路径上同时使用这两种方法是否值得?还是两个独立的发行版?不太可能。与Hibernate相比,这是一个不同的情况,Hibernate严重依赖于规范,但jOOQ实际上没有。

我想我将使用旧版本。

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

 类似资料:
  • 问题内容: 我想创建一个自定义注释(使用Java),该注释将接受其他注释作为参数,例如: 但这会导致编译器错误“注释成员的类型无效”。 Object []也无效。 有什么方法可以做我想要的吗? 问题答案: 我本人就此提出针对此问题的解决方法: 好吧,我想要实现的是这样的: 拟议的解决方法: 用以下方法定义一个无参数构造函数的类(稍后将由您自己的注释处理器调用): 用法:

  • 我有一个简单的方法来获取给定公司ID的文档列表。方法如下: 我想使用Javax验证约束来确保传入的companyId不是null。但它似乎没有任何影响,因为我能够传递一个null值,它向下流到存储库上的findByCompany调用。我还在NotNull之前添加了Valid来强制验证,但这也没什么用。 我总是可以写几行代码来检查null值,但我想使用javax。验证注释,使代码更具可读性和简洁性。

  • 我想验证属性firstName和lastName。但我不想每次都重复注释。 如何创建自定义注释,使代码如下所示 验证也是一样的

  • 正如标题所说。雅加达注释不在我的类路径中,所以我不知道为什么jooq用这些注释生成java类。我希望能够告诉它不要使用它,或者更确切地说有一种方法来指定它使用哪些验证注释。 我唯一设置为true的属性是,然后到处都有雅加达注释。你知道如何配置它来使用javax之类的东西吗? 我使用的是jooq codegen 3.16.4

  • 我正在使用jooq为我的H2 db表生成pojo 但是生成的代码(如下) 缺少@GeneratedValue注释,这使得无法使用spring data rest repository插入新记录,因为传入的对象总是抱怨没有设置id字段。 我可以做什么配置/工作来让jooq正常工作? 下面是我用来在编译时生成pojo的相关pom文件部分: 变通方法 在添加该功能之前,遇到相同问题的任何人都可以选择替换

  • 有了这个jdk代码在, java编译器只有注释声明,它足够智能,可以检测错误(编译时): 在下面的问题代码中。 的注释声明刚刚编译为, 它只不过是一个。 所以 语法是否帮助java编译器在编译时检测上述错误?