gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 16:30:09 25 4
gpt4 key购买 nike

我的查询是。

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();

此查询无效。.请帮助...

question table

answer table

HTTP状态500-请求处理失败;嵌套的异常是org.hibernate.hql.internal.ast.QuerySyntaxException:意外 token :,位于第1行第38列附近[Delete com.online.test.model.Question,来自com.online.test.model.Question的答复在que.id = ans.questionId上加入答案que.quiz_type_id =:qtypeid]

类型例外报告

消息请求处理失败;嵌套的异常是org.hibernate.hql.internal.ast.QuerySyntaxException:意外 token :,位于第1行第38列附近[Delete com.online.test.model.Question,来自com.online.test.model.Question的答复在que.id = ans.questionId上加入答案que.quiz_type_id =:qtypeid]

描述服务器遇到内部错误,导致服务器无法满足此请求。

例外

org.springframework.web.util.NestedServletException:请求处理失败;嵌套的异常是org.hibernate.hql.internal.ast.QuerySyntaxException:意外 token :,位于第1行第38列附近[Delete com.online.test.model.Question,来自com.online.test.model.Question的答复在que.id = ans.questionId上加入答案que.quiz_type_id =:qtypeid]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

根本原因

org.hibernate.hql.internal.ast.QuerySyntaxException:意外 token :,靠近第1行,第38列[删除com.online.test.model.Question,从com.online.test.model.Question回答左联接回答ans在que.id = ans.questionId上,que.quiz_type_id =:qtypeid]
org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:91)
org.hibernate.hql.internal.ast.ErrorCounter.throwQueryException(ErrorCounter.java:109)
org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:304)
org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:203)
org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)
org.hibernate.engine.query.spi.HQLQueryPlan。(HQLQueryPlan.java:126)
org.hibernate.engine.query.spi.HQLQueryPlan。(HQLQueryPlan.java:88)
org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:190)
org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1800)
com.online.test.Dao.AdminTestDaoImpl.removeQuiz(AdminTestDaoImpl.java:104)
com.online.test.service.AdminTestServicesImpl.removeQuiz(AdminTestServicesImpl.java:58)
sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
org.springframework.transaction.interceptor.TransactionInterceptor $ 1.proceedWithInvocation(TransactionInterceptor.java:98)
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
com.sun.proxy。$ Proxy35.removeQuiz(来源不明)
com.online.test.AdminController.removecountry(AdminController.java:59)
sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

note注意在Apache Tomcat / 8.0.9日志中可以找到根本原因的完整堆栈跟踪。
Apache Tomcat / 8.0.9

最佳答案

Hibernate批量DML操作不支持联接。从documentation:

没有Section 16.4, “Forms of join syntax”,无论是隐式的还是
显式的,可以在批量HQL查询中指定。子查询可以是
用于子句本身可能包含的子句
加入。

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

关于hibernate - hql查询以删除两个表中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35313328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com