Querydsl从子查询运行时异常中进行选择

时间:2015-02-13 17:49:45

标签: sql querydsl

我坚持如何在SQL上使用Querydsl从子查询中进行选择。代码编译得很好,但我得到了运行时异常:Undeclared path 'cases'. Add this path as a source to the query to be able to reference it.

代码看起来大致如下:

private ListSubQuery<Integer> getStudyCaseSubQuery(CaseQuery query) {
    SQLSubQuery sq = new SQLSubQuery().from(cases);
    ... stuff happens
    return sq.list(cases.id);
}

...

public List<JsonObject> getData(...) {
    // Build a common subquery for a bunch of other queries
    ListSubQuery<Integer> caseQuery = getStudyCaseSubQuery(...);

    // This fails with runtime exception
    List<Integer> caseIds = caseQuery.list(Expressions.path(Integer.class, cases, "id"));
}

我可以看到问题出在哪里:除了整个表格之外,我找不到为子查询指定别名的方法,这不是这里的情况。有许多使用AliasPath的示例,但在我可以适应此问题的测试或教程中没有任何匹配。虽然我非常了解SQL,但Querydsl中的表和列的别名显得完全不同,但我发现的例子并没有真正详细说明差异,所以澄清会非常有用。

0 个答案:

没有答案