查询DSL将BooleanExpression附加到具有Path <! - ? - >的现有BooleanExpression

时间:2012-11-15 09:52:44

标签: querydsl

我正在尝试追加两个BooleanExpression。 一个是规范的BooleanExpression,另一个是由Path创建的。 我认为我对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反转到正则表达式。这不起作用。任何想法都会受到欢迎。

1 个答案:

答案 0 :(得分:0)

我的坏。 Path的用法是正确的,错误在代码的不同部分。