我正在使用jooq 3.9.1。我想通过添加基于PostgreSQL运算符和函数的条件来编写查询。
例如,对于数组,有很多运算符,比如&&
或者我想使用的array_prepend
等函数。
实现这一目标的最佳方法是什么?
我相信应该有像
这样的东西int[] array_of_values = {1,2,3};
selectOne()
.from(TABLE)
.where(TABLE.COL_A.eq("Hello"))
.and(TABLE.COL_B.operator("&&").of(array_of_values))
.fetch();
答案 0 :(得分:2)
在jOOQ 3.9中,这里的标准方法是use the plain SQL API
selectOne()
.from(TABLE)
.where(TABLE.COL_A.eq("Hello"))
.and("{0} && {1}", TABLE.COL_B, val(array_of_values))
.fetch();
为方便起见,这是使用SelectConditionStep.and(String, QueryPart...)
方法,但还有其他方法,包括使用DSL.condition()
你的想法非常好。我已经注册了feature request for jOOQ 3.10。