Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用hibernate批量更新行_Java_Mysql_Hibernate - Fatal编程技术网

Java 使用hibernate批量更新行

Java 使用hibernate批量更新行,java,mysql,hibernate,Java,Mysql,Hibernate,我正在使用hibernate 4.3.10。根据hibernate文档(13.4),应该支持DML样式的更新。有人能指出我做错了什么吗?我有以下代码: Session session = CurrentJobContextUtil.getCurrentContext().getSession(); Query query = session.createQuery("update Survey s set s.state = :newState where s.endDate < :tim

我正在使用hibernate 4.3.10。根据hibernate文档(13.4),应该支持DML样式的更新。有人能指出我做错了什么吗?我有以下代码:

Session session = CurrentJobContextUtil.getCurrentContext().getSession();
Query query = session.createQuery("update Survey s set s.state = :newState where s.endDate < :time and s.state != :newState");
query.setParameter("newState",newState);
query.setDate("time", time);
int count = (int)query.uniqueResult();
会话会话=CurrentJobContextUtil.getCurrentContext().getSession(); Query Query=session.createQuery(“更新调查集s.state=:newState,其中s.endDate<:time和s.state!=:newState”); setParameter(“newState”,newState); query.setDate(“time”,time); int count=(int)query.uniqueResult(); 我得到一个例外:

org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [update com.customerconnect.jobmanager.data.model.Survey s set s.state = :newState where s.endDate < :time]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:318)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:369)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1300)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
    at org.hibernate.internal.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:966)
    at com.customerconnect.jobmanager.data.dao.SurveyDAOImpl.updateSurveyState(SurveyDAOImpl.java:26)
    at com.customerconnect.jobmanager.CCJobDataSvc.expireSurveys(CCJobDataSvc.java:510)
    at com.customerconnect.jobmanager.jobs.SurveyJobs.expireSurveys(SurveyJobs.java:30)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
    at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
org.hibernate.hql.internal.QueryExecutionRequestException:DML操作不支持[update com.customerconnect.jobmanager.data.model.Survey s set s.state=:newState,其中s.endDate<:time]
位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:318)
位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:369)
位于org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236)
位于org.hibernate.internal.SessionImpl.list(SessionImpl.java:1300)
位于org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
位于org.hibernate.internal.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:966)
位于com.customerconnect.jobmanager.data.dao.SurveyDAOImpl.updateSurveyState(SurveyDAOImpl.java:26)
在com.customerconnect.jobmanager.ccjobdasvc.expireSurveys(ccjobdasvc.java:510)上
在com.customerconnect.jobmanager.jobs.SurveyJobs.expireSurveys(SurveyJobs.java:30)上
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
位于org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
位于org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
位于java.util.concurrent.Executors$RunnableAdapter.call(未知源)
位于java.util.concurrent.FutureTask.run(未知源)
位于java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(未知源)
位于java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(未知源)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)
位于java.lang.Thread.run(未知源)
(int)query.uniqueResult()更改为
query.executeUpdate()它将返回受影响的行数