SQL 3 отношения на 1 запрос - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь получить 3 таблицы из разных сущностей, мне постоянно говорят, что есть ошибка, когда я использую, где eia.carreraHorizont.kid = eig.carreraHor horizontal.kid AND eig.carreraHorizont.kid = hch.carreraHorizontal. малыш, возвращаю много, результат повторяется. Вот мой код:

        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, eig, 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.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

у вас есть (по крайней мере) неправильный синтаксис для

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

Вместо этого вам следует использовать

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

Вы можете избежать старого синтаксиса объединения в зависимости от того, где и использовать синтаксис, основанный наexplcit join

   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, eig, hch) там, если новый оператор не является sql

0 голосов
/ 07 ноября 2019

Вы должны удалить последний eig.carreraHorizont.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

И я не знаю, является ли ошибка "new" после различных значений также ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...