java – HQL意外AST节点:
发布时间:2020-12-14 05:02:52 所属栏目:Java 来源:网络整理
导读:我的代码无法注入下面的仓库.基于堆栈跟踪,似乎我的HQL语法无效,但我不知道我做错了什么. @Repository public interface JobSetRepository extends JpaRepositoryJobSetEntity,Integer { @Modifying @Transactional @Query("UPDATE JobSetEntity SET worksta
我的代码无法注入下面的仓库.基于堆栈跟踪,似乎我的HQL语法无效,但我不知道我做错了什么.
@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); } 堆栈跟踪: 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) 更新:我也收到此错误与此查询: @Query("UPDATE OrderEntity SET inProduction = :order.inProduction WHERE OrderEntity.id = :order.id") void updateInProduction(@Param("order") OrderEntity order); 我更新了我的版本最新: <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> 更新:我也收到这个错误: @Query("SELECT oe FROM OrderEntity oe WHERE oe.id = :orderProductEntity.id") OrderEntity findBy(@Param("orderProductEntity") OrderProductEntity orderProductEntity); 解决方法
可悲的是,你不能做:order.inProduction(或者:foo.bar一般).
Reference.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |