有一些example:
Condition condition;
condition = CAR.COLOR.eq("blue");
condition = condition.or(CAR.MODEL.eq("Genesis"));
condition = condition.or(CAR.MANUFACTOR.eq("ford").and(CAR.COLOR.eq("blue")));
是否有一些方法可以初始化org.jooq.Condition对象而无需显式分配?类似的东西:
Condition condition = new Condition();
然后我想在for-each循环中增加我的条件并在某种方法中返回这个条件对象。但如果我这样做:
public Condition getRuleConditions(List<Rule> rules){
Condition condition;
for(Rule rule: rules){
condition = condition.or(rule.getField().eq(rule.getValue()));
}
return condition;
}
我无法返回此条件对象。
答案 0 :(得分:2)
您有两种选择:
Condition
:Condition condition = DSL.falseCondition();
for (Rule rule : rules) {
condition = condition.or(rule.getField().eq(rule.getValue()));
}
null
:Condition condition = null;
for (Rule rule : rules) {
Condition c = rule.getField().eq(rule.getValue());
condition = (condition == null) ? c : condition.or(c);
}
在第二个示例中,结果Condition
当然可以是null
,并且您必须在代码中的其他位置处理它。在第一个示例中,结果Condition
永远不会是null