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

hql查询删除两个表中的记录

谷博艺
2023-03-14
Query query1 = session.createQuery(
                "DELETE Question, Answer FROM Question que LEFT JOIN Answer ans ON que.id=ans.questionId  WHERE que.quiz_type_id=:qtypeid");
        query1.setParameter("qtypeid", id);
        query1.executeUpdate();

应答表

HTTP状态500-请求处理失败;嵌套异常为org.hibernate.hql.internal.ast.QuerySyntaxException:意外标记:,靠近第1行,第38列[DELETE com.online.test.model.question,Answer FROM com.online.test.model.question que LEFT JOIN Answer ans ON que.id=ans.questionid WHERE que.quiz_type_id=:qtypeid]

类型异常报告

说明服务器遇到内部错误,导致它无法完成此请求。

例外情况

org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为org.hibernate.hql.internal.ast.querysyntaxexception:意外令牌:,靠近第1行,第38列[DELETE com.online.test.model.question,答案来自com.online.test.model.question que LEFT JOIN ans ON que.id=ans.questionid WHERE que.quiz_type_id=:qtypeid]org.springframework.web.servlet.frameworkservlet.processrequest(

根本原因

注意,Apache Tomcat/8.0.9html" target="_blank">日志中提供了根本原因的完整堆栈跟踪。Apache Tomcat/8.0.9

共有1个答案

赫连心思
2023-03-14

Hibernate大容量DML操作中不支持联接。从文档中可以看到:

不能在批量HQL查询中指定第16.4节“连接语法的形式”(隐式或显式)。子查询可以在where-子句中使用,其中子查询本身可能包含联接。

可以使用两个delete语句分别删除答案和问题。

 类似资料:
  • 问题内容: 我在MySQL中有两个表 现在,如果我想从邮件表中删除就可以了。但是,当我通过messageid删除消息时,该记录仍然存在于usersmessage上,我必须立即从这两个表中删除。 我使用以下查询: 然后我测试 但是这两个查询并没有完成此任务。 问题答案: 您不能用分号分隔它们吗? 要么 只需如下使用

  • 我有Hibernate HQL查询,它似乎可以完美地完成它的工作,但我目前正在尝试使用Hibernate Criteria API,并希望使用Criteria API表达相同的HQL查询。在这个特定的示例中,我在HQL查询中有两个联接,其中我的第二个联接使用第一个联接的别名。我想实现与标准API相同的东西。这可能吗? 例如,我还尝试将第二个别名定义为: 但没有成功。

  • 问题内容: 是否可以构建单个mysql查询(不带变量)以从表中删除所有记录,但最新的N(按ID desc排序)除外? 像这样的东西,只有它不起作用:) 谢谢。 问题答案: 您不能以这种方式删除记录,主要问题是您不能使用子查询来指定LIMIT子句的值。 这有效(在MySQL 5.0.67中测试): 中间子查询 是 必需的。没有它,我们将遇到两个错误: SQL错误(1093):您无法在FROM子句中指

  • 我是JSP的新手,我正在尝试创建一个web界面,用户可以在该界面中输入他们想要删除的信息,并且该信息将在数据库表中删除。 在这里,他们应该输入和,然后应该删除具有两个指定ID的任何数据。但是,它不是从表中删除的。我有个例外 数组索引越界 下面是我的代码:

  • 我有一个使用JParePository的Spring Boot项目。 我有两个实体,Threat和Dimension,在数据库中我有3个表:tbl_threat,tbl_dimension和tbl_threat_dimension(它关系到每个威胁的维度) 我想删除thread_dimension表中的一个关系行。我该怎么解决这个?

  • 我正在使用hibernate为一个项目连接到我的数据库。 我想有一个查询,从我的数据库中获得产品与特定语言的描述和名称。我拥有的参数是该语言的简称,因此首先我必须获得该语言的id,然后获得所需语言的文本。 我尝试了下面的hql查询,没有成功。