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

为什么jooq使用雅加达注释生成?

申高峰
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的依赖怎么样?它们不能很容易地复制或配置。在类路径上同时拥有这两个版本值得吗?或者发布两个独立的发行版?不太可能。与HiberNate相比,这是一个不同的情况,HiberNate在很大程度上取决于规范,但jOOQ不值得。

我想我会用一个旧版本。

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

 类似资料:
  • 这个项目当然也有控制器调用的服务。因为它是一个Spring项目,所以用@Service注释对它们进行了注释。 当然,现在我想知道如何将这一点转移到雅加达世界。 用@stateless(我不需要@statelable)注释它的唯一方法是吗? 如果我使用@stateless,我必须把它放在实现类的接口上吗?或者,如果我把它放在接口上,它会被实现类继承吗?

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

  • 问题内容: 使用Java 注释的最佳实践是什么?为什么? 用注解标记每个覆盖的方法似乎是过大的。是否存在某些编程情况要求使用和其他不应该使用的情况? 问题答案: 每次你重写一种方法都有两个好处时使用它。这样做是为了使你能够利用编译器检查的优势,以确保你认为自己确实覆盖了某个方法。这样,如果你犯了拼写错误的方法名称或不正确匹配参数的常见错误,将会警告你方法实际上并没有像你认为的那样覆盖。其次,它使你

  • 问题内容: 它为什么如此重要?根据XML映射的优势是什么?你能解释这些吗?谢谢。 问题答案: 它不是“强制性”中的重要内容。有优势和劣势的可能性是不同的。 优点: 编译时检查:如今在IDE中,用Java(而不是Xml)编写非常易于使用。启动应用程序(渐进式编译)时,没有发现 更多错别字 ,也没有什么值得记住的( 完成 )… 使用代码进行本地化(类级别):不必打开两个文件(java和xml)以获取完

  • 有时,当函数具有这样的签名时,它可能会变得毛茸茸的: 对于编译器来说,所有UUID都是相同的,因此希望在运行时被数据库捕获。 我喜欢jOOQ在编译时捕获许多问题的方式,我也想解决这个问题。我的目标是让每个表的每个键都有自己的类,并让这些字段正确生成pojos。 实现这一目标的最佳方法是什么?我想出了以下几点: 全面的JavaGenerator实现 具有大量强制类型映射的转换器,以及手动创建的键类

  • 问题内容: 我发现不方便之处在于番石榴中的前提条件没有标注注释。考虑以下示例: 因此IDE找不到总是错误的。是否有任何特殊原因为什么不标记此前提条件(即使其参数是使用定义的)。 问题答案: 很抱歉,我们没有在任何地方使用过。为什么?我们尝试添加更多的空检查注释,发现: 添加所有其他注释非常冗长。 这就是我们所需要的。诚然,对于Guava开发人员而言,这比Guava用户更为重要。 似乎遇到了大多数问