繁体   English   中英

JPA / JPQL消息错误语法

[英]JPA/JPQL message error syntax

人!

我编写代码JPA / HQL并运行,但是它显示错误消息。 说:

java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: Exception Description: Syntax error parsing the query [Select t.disciplina.nomeDisciplina, n.notaFinal From (Select f.notas as notas, sum(f.f1 + f.f2 + f.f3 +f.f4) as soma from Frequencia f group by f.notas) subquery inner join subquery.notas n inner join n.aluno1 a inner join n.turma1 t inner join a.usuario u where u = ?1], line 1, column 54: unexpected token [(].Internal Exception: org.eclipse.persistence.internal.jpa.parsing.jpql.InvalidIdentifierException 

我使用子句子查询创建HQL(query),请参见下文。

 public List<Object[]> getListNotasFrequencia(Usuario u) {
        EntityManager em = getEntityManager();

        List<Object[]> lista = new Vector<Object[]>();

        String query = "Select t.disciplina.nomeDisciplina, n.notaFinal "
               + " From (Select f.notas as notas, sum(f.f1 + f.f2 + f.f3 +f.f4) as soma from Frequencia f group by f.notas) subquery  "
                + " inner join subquery.notas n"
                + " inner join n.aluno1 a"
                + " inner join n.turma1 t"
                + " inner join a.usuario u"
                + " where u = ?1"; 

        try {
            lista = em.createQuery(query).setParameter(1, u).getResultList();
        } finally {
            em.close();
        }
        return lista;
    }

我已经多次调试该代码,但是出现相同的错误消息。

请! 您可以帮助或提示此代码。 我开始学习此JPA / JPQL。

谢谢!!!

问题是FROM子句中的子选择,JPA不支持此选择。 EclipseLink确实对此提供了一定程度的支持,但是随后您继续为这个不存在的对象创建别名关系,因此我看不到您期望它如何工作。

重做查询以仅使用普通联接,或使用本机SQL查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM