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
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查询,没有成功。