[英]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.