Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jOOQ:在select语句之前设置where条件_Java_Jooq - Fatal编程技术网

Java jOOQ:在select语句之前设置where条件

Java jOOQ:在select语句之前设置where条件,java,jooq,Java,Jooq,我让jOOQ根据参数值选择,其中条件应等于或不等于某个值: 如果参数=true: Charts c = CHARTS.as("c"); context.select() .from(c) .where(c.CHART_TYPE.eq(100)) // note the eq .orderBy(c.NAME) .fetch(); 如果参数=false:

我让jOOQ根据参数值选择
,其中
条件应等于或不等于某个值:

如果参数=true:

    Charts c = CHARTS.as("c");
    context.select()
                .from(c)
                .where(c.CHART_TYPE.eq(100))  // note the eq
                .orderBy(c.NAME)
                .fetch();
如果参数=false:

    Charts c = CHARTS.as("c");
    context.select()
                .from(c)
                .where(c.CHART_TYPE.ne(100))  // note the ne
                .orderBy(c.NAME)
                .fetch();

我不想重复整个选择过程(在许多情况下比示例更复杂/更长)。是否有一种方法可以根据参数只设置
where
条件,然后将其插入select?

是的,这不是问题。您可以创建一个返回条件对象的方法

比如说

Charts c = CHARTS.as("c");
context.select()
            .from(c)
            .where(createCondtion(c))  
            .orderBy(c.NAME)
            .fetch();

private Condition createCondition(Charts c) {
   if (parameter == false) {
      return c.CHART_TYPE.ne(100);
   } else {
      return c.CHART_TYPE.eq(100);
   }
}
你可以用

context.select()
.来自(c)
.式中(c.CHART_TYPE.compare(参数?Comparator.EQ:Comparator.NE,100))
.orderBy(c.NAME)
.fetch();