【问题标题】:Right outer join in hql giving unexpected token for and conditionhql 中的右外连接为和条件提供了意外的标记
【发布时间】:2012-11-22 00:33:29
【问题描述】:

我使用的是休眠 3.0。 我正在应用正确的外部联接。我的查询是

List<Integer> phaseCount1 = getHibernateTemplate().find("select count(phasesPlan.phaseid.id) as Phase from PhasePlan phasesPlan RIGHT JOIN " +
            "phasesPlan.phaseid as phasedetails and phasesPlan.teamid.teamid=? group by phasedetails.id",team_id);

在这种情况下,and 条件 (phasesPlan.phaseid as phasedetails **and** phasesPlan.teamid.teamid=?) 给出了意外的令牌异常。 任何帮助将不胜感激。

【问题讨论】:

    标签: java hibernate hql outer-join


    【解决方案1】:

    您需要将“and”替换为“where”:-

    find("select count(phasesPlan.phaseid.id) as Phase 
    from PhasePlan phasesPlan RIGHT JOIN " +
        "phasesPlan.phaseid as phasedetails **where** phasesPlan.teamid.teamid=? 
    group by phasedetails.id",team_id)
    

    【讨论】:

    • 但是哪里不符合我的目的,当应用到哪里时,我没有得到正确的查询结果。
    • 在这种情况下,我们需要指定连接应该在哪一列:-find("select count(phasesPlan.phaseid.id) as Phase from PhasePlan phasePlan RIGHT JOIN " + "phasesPlan.phaseid作为phasesPlan.teamid.teamid=phasedetails.teamid 上的phasedetails 其中phasesPlan.teamid.teamid=? group by phasedetails.id",team_id)
    • 这不起作用。Hibernate 不接受“on”,即 phasePlan.phaseid 作为phasesPlan.teamid.teamid=phasedetails.teamid 上的phasedetails 给出错误
    • 你可以尝试用“with”代替“on”和“and”代替“where”
    猜你喜欢
    • 2013-09-15
    • 2011-11-17
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多