1

2 つの BooleanExpression を追加しようとしています。1 つは規制の BooleanExpression で、もう 1 つは 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 を正規のものに変更しようとしています。これは動作しません。どんなアイデアでも歓迎します。

4

1 に答える 1

0

私の悪い。Path の使用法は正しく、エラーはコードの別の部分にありました。

于 2012-11-18T16:05:20.177 に答える