我正在尝试附加两个 BooleanExpression。一个是规范的 BooleanExpression,另一个是由 Path 创建的。我认为我对路径的使用是错误的。我的代码:
public static Path<?> getPathByColumnName(String columnName) {
Path<?> retval = null;
QProfile p = QProfile.profile;
if (columnName.equals("name")) {
retval = p.name;
} else if (columnName.equals("account")) {
retval = p.account.name;
} else if (columnName.equals("isPublic")) {
retval = p.isPublic;
} else if (columnName.equals("datavendors")) {
retval = p.dataVendors.any().name;
}
return retval;
}
然后将路径发送到以下方法
public static BooleanExpression getFilterPredicateByFilterAndPath(Path path, FilerType type, String filter) { BooleanExpression retval = null;
if (path instanceof StringPath) {
if (FilerType.CONTAIN.equals(type)) {
retval = ((StringPath)path).like(filter);
}
} else if (path instanceof BooleanPath) {
if (FilerType.EQUAL.equals(type)) {
retval = ((BooleanPath)path).eq(Boolean.valueOf(filter));
}
}
return retval;
}
然后我试图将接收到的 BooleanExpression 加入到正则表达式中。这不起作用。任何想法都会受到欢迎。