当前位置: 首页 > 知识库问答 >
问题:

JPA,JPQL:意外标记:左近第1行

淳于恺
2023-03-14

我想使用以下参数显示所有未应答和未应答的检查表(应答检查表位于ResponseCheckLists表中):idequipement和idMission。

@Query("SELECT check,resp,eq FROM Equipements eq INNER JOIN CheckLists check WHERE eq.idEquipements = check.equipements.idEquipements LEFT JOIN ResponsesCheckLists resp ON check.idCheckLists=resp.CheckLts.idCheckLists AND resp.Respmission.idMission = :idmiss WHERE eq.idEquipements = :idEqp ")
    public List<ResponsesCheckLists> ListCheckListsNonRepondu(@Param("idEqp") long idEqp, @Param("idmiss") long idmiss);

运行此查询后,我显示以下错误消息:

antlr.NoViableAltException: unexpected token: LEFT
------
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: LEFT near line 1, column 148 [SELECT check,resp,eq FROM com.SSC.DAO.Entities.Equipements eq INNER JOIN CheckLists check WHERE eq.idEquipements = check.equipements.idEquipements LEFT JOIN ResponsesCheckLists resp ON check.idCheckLists=resp.CheckLts.idCheckLists AND resp.Respmission.idMission = :idmiss WHERE eq.idEquipements = :idEqp ]
------
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'responsesCheckListsRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.SSC.DAO.JPARepository.ResponsesCheckListsRepository.ListCheckListsNonRepondu(long,long)!

编辑1:

@Query("SELECT check,resp,eq FROM Equipements eq INNER JOIN CheckLists check ON eq.idEquipements = check.equipements.idEquipements"
            + " INNER JOIN ResponsesCheckLists resp ON check.idCheckLists=resp.CheckLts.idCheckLists AND resp.Respmission.idMission = :idmiss AND eq.idEquipements = :idEqp ")
    public List<ResponsesCheckLists> ListCheckListsNonRepondu(@Param("idEqp") long idEqp, @Param("idmiss") long idmiss);

编辑错误1;

原因:java。lang.IllegalStateException:节点:org没有数据类型。冬眠hql。内部的阿斯特。树IdentNode-[IDENT]IdentNode:'check'{originalText=check}

ANTLR. Semantic异常:预期加入的路径!

原因:java。lang.IllegalArgumentException:方法公共抽象java的查询验证失败。util。列出com。SSC。刀。JPA是肯定的。回答问题回答。ListCheckListsNonRepondu(长,长)!

编辑2:

@Query("SELECT check , resp , eq FROM Equipements eq INNER JOIN CheckLists check ON eq.idEquipements = check.equipements.idEquipements"
            + " INNER JOIN ResponsesCheckLists resp ON check.idCheckLists=resp.CheckLts.idCheckLists AND resp.Respmission.idMission = :idmiss AND eq.idEquipements = :idEqp ")
    public List<ResponsesCheckLists> ListCheckListsNonRepondu(@Param("idEqp") long idEqp, @Param("idmiss") long idmiss);

Edit2的错误:

原因:java。lang.IllegalStateException:节点:org没有数据类型。冬眠hql。内部的阿斯特。树IdentNode-[IDENT]IdentNode:'check'{originalText=check}antlr。SemanticException:应该是加入的路径!

如何更正此查询?

提前谢谢

共有1个答案

陶胤
2023-03-14

这里有一个指定JPQL查询的Spring注释(@Query)。您的JPQL查询应该遵循此链接中突出显示的语法(以及JPA规范)。可悲的是,你没有遵循这一点。

SELECT {result} FROM {from} WHERE {where} ...

任何“JOIN”都必须包含在从子句中。你已经在从子句中添加了一个JOIN,但是出于只有你知道的原因,你决定在WHERE子句中添加另一个JOIN!!事实上,你在那堆垃圾中有2个WHERE子句。

因为你没有发布你的实体,所以我们不可能告诉你你的查询应该是什么,所以我们看不到它们之间有什么关系,甚至看不到你想要实现什么。我们只能指出你的错误

 类似资料:
  • 我遇到了这个错误,请告诉我如何解决这个意外的标记:第1行257列附近的InnerJoin

  • 问题内容: 我正在尝试与Jenkins构建过程一起运行以下Shell命令 现在构建失败 但是奇怪的是,当直接在Jenkin从站上运行此命令时,它可以正常工作。 如您所见,Jenkins也运行shell命令 。 任何帮助将不胜感激,因为我努力了几个小时 问题答案: 是由启用的扩展模式。目前尚不清楚如何在您的Jenkins从站中启用它,但是将命令添加到脚本中应该可以解决您的问题。

  • 你好,我尝试在其他问题中搜索,但没有一个提到的解决方案,我尝试对我不起作用。 使用命令时: npm启动 我有一个错误: /src/index.js模块生成失败(来自./node_modules/babel-loader/lib/index.js):语法错误:d:/kodilla/projekty/webpack-to-do-app/src/index.js:意外>令牌(6:4) package.j

  • 我正在尝试JPA2.1(eclipselink)中的“treat as”函数,但遇到了一个来自JPA的错误: 异常说明:ReportQuery结果大小不匹配。应为[263],但已检索到[197] 下面是我的JPQL查询(我更改了一些部分,以便更明确): 我们可以看到account和ad_account之间的左外部连接。此外,ad_account表不存在于select子句中。(idApp字段是主键的

  • 我在测试机智。ai与fb提供的样品,我运行在以下错误。。。 我对节点和机智很陌生。我使用了初始化并安装节点wit模块。能找个人帮忙吗?

  • 问题出现在(bot)中。这部分代码: