繁体   English   中英

在 jOOQ 中动态创建条件

[英]Creating a condition dynamically in jOOQ

我有以下两条 jOOQ 行,这很好用:

    Formulas f = FORMULAS.as("f");
    Condition condition = x > y ? f.SK.eq(sk) : f.SK.eq(0);

现在,由于我有 100 个需要相同条件的表,并且条件比上面的示例复杂得多,我想创建一个像这样的方法:

public Condition getCondition(Table table, int x, int y, int sk) {
        Condition condition = // write here a generic condition
        return condition;
}

但我不知道如何将列一般分配给表。 如何处理这个问题?

您可以使用以下内容:

public static Condition makeCondition(Table<?> table, int x, int y, int sk) {
    Field<Integer> skField = table.field("sk", int.class);
    return x > y ? skField.eq(sk) : skField.eq(0);
}

或更详细,但键入安全版本:

public static <R extends Record> Condition makeCondition(
        Table<R> table,
        TableField<R, Integer> skField,
        int x,
        int y,
        int sk) {
    return x > y ? skField.eq(sk) : skField.eq(0);
}

// usage:
var c = makeConditon(FORMULAS, FORMULAS.SK, 1, 2, 3);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM