Mi código es no inyectar el siguiente repositorio. Basada en la traza de la pila, parece que mi HQL sintaxis no es válido, pero no estoy seguro de lo que he hecho mal.

@Repository
 public interface JobSetRepository extends JpaRepository<JobSetEntity, Integer> {
    @Modifying
    @Transactional
    @Query("UPDATE JobSetEntity SET workstation = :workstation, workflowProcess = :workstation.workflowProcess WHERE id = :jobSet.id")
    public Boolean updateWorkstation(@Param("jobSet") JobSetEntity jobSet, @Param("workstation") Workstation workstation);

    @Modifying
    @Transactional
    @Query("UPDATE JobSetEntity SET workflowProcess = :workflowProcess, workstation = null WHERE id = :jobSet.id")
    public Boolean updateWorkflowProcess(@Param("jobSet") JobSetEntity jobSet, @Param("workflowProcess") WorkflowProcess workflowProcess);
}

seguimiento de la pila:

12:57:58,692 ERROR main org.hibernate.hql.internal.ast.ErrorCounter:54 - <AST>:1:111: unexpected AST node: :
12:57:58,693 ERROR main org.hibernate.hql.internal.ast.ErrorCounter:50 - <AST>:1:111: unexpected AST node: :
<AST>:1:111: unexpected AST node: :
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.addrExpr(HqlSqlBaseWalker.java:4680)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.addrExprLhs(HqlSqlBaseWalker.java:5114)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.addrExpr(HqlSqlBaseWalker.java:4575)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1260)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.newValue(HqlSqlBaseWalker.java:1211)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.assignment(HqlSqlBaseWalker.java:1033)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.setClause(HqlSqlBaseWalker.java:747)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.updateStatement(HqlSqlBaseWalker.java:367)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:255)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:248)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:105)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80)

Actualización: también estoy recibiendo este error con esta consulta:

@Query("UPDATE OrderEntity SET inProduction = :order.inProduction WHERE OrderEntity.id = :order.id")
void updateInProduction(@Param("order") OrderEntity order);

He actualizado mis versiones a la última:

    <dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.5.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.2.5.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.3.4.RELEASE</version>
</dependency>

Actualización: también estoy recibiendo este error:

@Query("SELECT oe FROM OrderEntity oe WHERE oe.id = :orderProductEntity.id")
OrderEntity findBy(@Param("orderProductEntity") OrderProductEntity orderProductEntity);

OriginalEl autor Webnet | 2013-09-23

3 Comentarios

  1. 13

    Lamentablemente, no se puede hacer :order.inProduction (o :foo.bar en general). Referencia.

    OriginalEl autor Pace

  2. 6

    Cuando se utiliza este:

    :workstation.workflowProcess

    Se está definiendo un parámetro, entonces usted no puede usar esa notación, pero usted debe utilizar una variable como:

    :workstation
    :workflowProcess

    y así sucesivamente

    OriginalEl autor Joe Taras

  3. 1

    Realidad error está en NamedQuery Sintaxis ,no Se puede hacer como
    workflowProcess = :estación de trabajo.workflowProcess
    el contrario, debe ser como
    workflowProcess = :workflowProcess

    OriginalEl autor Taimur

Dejar respuesta

Please enter your comment!
Please enter your name here