jOOQ如何执行Postgresql函数和运算符

时间:2017-01-29 19:32:23

标签: java sql jooq

我正在使用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();

1 个答案:

答案 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