1查询的SQL 3关系

我试图从不同的实体中获取3个表,当我使用eia.carreraHorizo​​ntal.kid = eig.carreraHorizo​​ntal.kid和eig.carreraHorizo​​ntal.kid = hch.carreraHorizo​​ntal时,它一直在说我有一个错误。小子,它反复返回很多结果。 这是我的代码:

        List<EvaluacionIndividualAnualYGdp> lista;
        String jpql = "select DISTINCT new es.valencia.gp.sbch.entity.EvaluacionIndividualAnualYGdp(eia,eig,hch)" 
                + " from EvaluacionIndividualAnual eia,EvaluacionIndividualGdp eig,HistoricoCarreraHorizontal hch"
                + " where eia.carreraHorizontal.kid = eig.carreraHorizontal.kid = eig.carreraHorizontal.kid"
                + " ";
                //GROUP BY eia ORDER BY eia.carreraHorizontal.empleado.apellido1 ASC,eia
        TypedQuery<EvaluacionIndividualAnualYGdp> query = em.createQuery(jpql,EvaluacionIndividualAnualYGdp.class);
        lista = query.getResultList();
        return lista;
    } ``` 

The error:
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected AST node: = near line 1,column 302 [select DISTINCT new es.valencia.gp.sbch.entity.EvaluacionIndividualAnualYGdp(eia,hch) from es.valencia.gp.sbch.entity.EvaluacionIndividualAnual eia,es.valencia.gp.sbch.entity.EvaluacionIndividualGdp eig,es.valencia.gp.sbch.entity.HistoricoCarreraHorizontal hch where eia.carreraHorizontal.kid = eig.carreraHorizontal.kid = eig.carreraHorizontal.kid ]

But i'm getting an exception. How i can get those values? Sorry for the question but i'm new.
liudongmei2006407114 回答:1查询的SQL 3关系

您应该删除最后一个eig.carreraHorizo​​ntal.kid:

eia.carreraHorizontal.kid = eig.carreraHorizontal.kid = eig.carreraHorizontal.kid

应该是

eia.carreraHorizontal.kid = eig.carreraHorizontal.kid

比较a = b = b无效。可能应该是a = b和b = c

    eia.carreraHorizontal.kid = eig.carreraHorizontal.kid 
and eig.carreraHorizontal.kid = hch.carreraHorizontal.kid

而且我不知道区别之后的“新”是否也是错误。

,

(至少)您的sintax错误

   where eia.carreraHorizontal.kid = eig.carreraHorizontal.kid = eig.carreraHorizontal.kid 

您应该使用

    where eia.carreraHorizontal.kid = eig.carreraHorizontal.kid 
    AND  eig.carreraHorizontal.kid =  hch.carreraHorizontal.kid

您可以避免基于何处的旧联接sintax,而基于显式联接使用sintax

   select DISTINCT
   es.valencia.gp.sbch.entity.EvaluacionIndividualAnualYGdp(eia,eig,hch) 
   from EvaluacionIndividualAnual eia
   INNER JOIN EvaluacionIndividualGdp eig ON eia.carreraHorizontal.kid = eig.carreraHorizontal.kid  
   INNER JOIN HistoricoCarreraHorizontal hch  ON  eig.carreraHorizontal.kid =  hch.carreraHorizontal.kid

尚不清楚new es.valencia.gp.sbch.entity.EvaluacionIndividualAnualYGdp(eia,hch)中的新含义   没有新的运算符是sql

本文链接:https://www.f2er.com/3146466.html

大家都在问