Sql 休眠QuerySyntaxException时出错:意外令牌
我看不出错误在哪里 这是一个问题:Sql 休眠QuerySyntaxException时出错:意外令牌,sql,hibernate,hql,jpql,Sql,Hibernate,Hql,Jpql,我看不出错误在哪里 这是一个问题: @NamedQuery(name = Sustitutos.Q_BUSCAR_SUSTITUTOS_OFICINA, query = "select e from Sustitutos e inner join Personas p ON p.codPersona = e.sustituido WHERE p.codUnidad = :codigo"), 我这样称呼它: Query q = this.em.createNamedQuery(S
@NamedQuery(name = Sustitutos.Q_BUSCAR_SUSTITUTOS_OFICINA,
query = "select e from Sustitutos e inner join Personas p ON p.codPersona = e.sustituido WHERE p.codUnidad = :codigo"),
我这样称呼它:
Query q = this.em.createNamedQuery(Sustitutos.Q_BUSCAR_SUSTITUTOS_ZONA);
q.setParameter("codigo", codUnidadSup);
List<Sustitutos> resultado = q.getResultList();
我做错了什么?谢谢在JPQL
中的“上没有”,但是您可以执行隐式连接并使用WHERE
子句
@NamedQuery(name = Sustitutos.Q_BUSCAR_SUSTITUTOS_OFICINA,
query = "select e from Sustitutos e join e.personas p WHERE p.codUnidad = :codigo"),
正如您在堆栈跟踪中看到的,问题在于ON
关键字
它是一个SQL关键字,在JPQL中无法识别,如注释中所述,您应该使用join
连接对象引用
您的查询应该是这样的:
query = "select e from Sustitutos e join e.personas p WHERE p.codUnidad = :codigo")
请向我们展示整个堆栈跟踪?您必须使用对象引用进行连接。HQL与SQL不同。如果您需要更多帮助,请查看对象sustituos
和Personas
query = "select e from Sustitutos e join e.personas p WHERE p.codUnidad = :codigo")