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



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

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

我正在使用jOOQ codegen 3.16.4

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

我理解这种挫败感。我们都感受到了。你找到的那篇文章描述了这一点:"海啸正在爪哇岛的生态系统中掀起涟漪。它是将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这样的功能,就没有太大价值了。

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

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

我想我将使用旧版本。

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

最新更新