2017-02-24 447 views
0

在使用JOOQ时,带有.and()的dsl.select()我得到了“类型Condition中的方法和(布尔)已过时”这样的警告。 Iam使用jooq 3.8.3。 有没有人可以向我介绍这件事?JOOQ:类型Condition中的方法和(布尔值)已过时

+0

也许你可以在[this]上找到答案(https://www.jooq.org/notes)第 –

回答

1

我知道了,我是用的,而不是平等的equals方法,像

.where(AePlan.AE_PLAN.PLAN_ID**.equals**(planId) 
.and(AePlan.AE_PLAN.PHARMACYNETWORK_ID.**equals**(pharmacyNW_Id)) 

平等的用途是我的工作!

1

该方法(以及许多其他类似的方法)在jOOQ 3.8中被弃用,问题#4763正是由于您经历的原因和documented yourself in your own answer

很多人不小心用Object.equals()方法,而不是Field.equal()方法(例如,由于偶然的IDE自动完成的),认为他们生产的有效jOOQ Condition,当他们真正生产boolean不变。

如果没有任何Condition.and(Boolean)“便利方法”,那么您只会收到编译错误并修复了您的错误。但通过Condition.and(Boolean)方法,您的代码编译并运行良好,但您的查询不会执行您的意图。

因此,产生混淆结果的“便利方法”再次被弃用。

在附注上,您可以使用两个字母的缩写形式(如Field.eq())来避免此问题。

+0

页嗨谢谢卢卡斯...非常感谢你的回应!是的,这只是因为IDE的自动更正。 – Shantanu