Java jOOQ:在select语句之前设置where条件
我让jOOQ根据参数值选择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:
,其中
条件应等于或不等于某个值:
如果参数=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();