-
getHibernateTemplate().bulkUpdate()使用5
@Override
public void updateBath(String deviceId)
{
if (StringUtils.isEmpty(deviceId))
{
return;
}
getHibernateTemplate().bulkUpdate("update RasPo ras set ras.state='58',ras.errorCode='102' where ras.sysFlag=0 and ras.deviceId=?",
deviceId);
}
我这样做的一个批量更新数据库的记录,
但是报错:org.springframework.orm.hibernate3.HibernateQueryException: query must begin with SELECT or FROM: update [update com.huawei.cie.omu.maintenance.ras.domain.po.RasPo ras set ras.state='58',ras.errorCode='102' where ras.sysFlag=0 and ras.deviceId=?]; nested exception is org.hibernate.QueryException: query must begin with SELECT or FROM: update [update com.huawei.cie.omu.maintenance.ras.domain.po.RasPo ras set ras.state='58',ras.errorCode='102' where ras.sysFlag=0 and ras.deviceId=?]
问题补充:所有异常信息:
2012-09-19 19:49:16,289 ERROR [sbus-1-thread-5] [com.huawei.cie.nodemgr.sbus.core.skeleton.ServiceSkeletonImpl.invoke(152)] Exe method public abstract void com.huawei.cie.dmu.maintenance.ras.api.HandleRasService.updateRas(java.lang.String) with exception.
org.springframework.orm.hibernate3.HibernateQueryException: query must begin with SELECT or FROM: update [update com.huawei.cie.omu.maintenance.ras.domain.po.RasPo ras set ras.state='58',ras.errorCode='102' where ras.sysFlag=0 and ras.deviceId=?]; nested exception is org.hibernate.QueryException: query must begin with SELECT or FROM: update [update com.huawei.cie.omu.maintenance.ras.domain.po.RasPo ras set ras.state='58',ras.errorCode='102' where ras.sysFlag=0 and ras.deviceId=?]
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:660) ~[org.springframework.orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) ~[org.springframework.orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411) ~[org.springframework.orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) ~[org.springframework.orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.bulkUpdate(HibernateTemplate.java:1141) ~[org.springframework.orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.bulkUpdate(HibernateTemplate.java:1137) ~[org.springframework.orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at com.huawei.cie.omu.maintenance.ras.dao.impl.RasDaoImpl.updateBath(RasDaoImpl.java:130) ~[na:na]
at com.huawei.cie.omu.maintenance.ras.service.impl.RasServiceImpl.updateRasPos(RasServiceImpl.java:257) ~[na:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_26]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_26]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_26]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_26]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309) ~[org.springframework.aop-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) ~[org.springframework.aop-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[org.springframework.aop-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) ~[org.springframework.transaction-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[org.springframework.aop-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) ~[org.springframework.aop-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at $Proxy358.updateRasPos(Unknown Source) ~[na:na]
at com.huawei.cie.omu.maintenance.ras.service.impl.HandleRasServiceImpl.updateRas(HandleRasServiceImpl.java:47) ~[na:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_26]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_26]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_26]
at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_26]
at com.huawei.cie.nodemgr.sbus.core.skeleton.ServiceSkeletonImpl.invoke(ServiceSkeletonImpl.java:133) [com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at com.huawei.cie.nodemgr.sbus.core.skeleton.ServiceSkeletonImpl.process(ServiceSkeletonImpl.java:93) [com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at com.huawei.cie.nodemgr.sbus.core.mgr.local.RequestMsgHandler.onMessage(RequestMsgHandler.java:52) [com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at com.huawei.cie.nodemgr.sbus.transport.SBusPortImpl.receiveMsg(SBusPortImpl.java:111) [com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at com.huawei.cie.nodemgr.sbus.core.mgr.local.RequestMsgHandler.onMessage(RequestMsgHandler.java:52) [com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at com.huawei.cie.nodemgr.sbus.transport.SBusPortImpl.receiveMsg(SBusPortImpl.java:111) [com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at com.huawei.cie.nodemgr.sbus.transport.MqMessageHandler$MsgDispatcher.run(MqMessageHandler.java:110) [com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26]
at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]
Caused by: org.hibernate.QueryException: query must begin with SELECT or FROM: update [update com.huawei.cie.omu.maintenance.ras.domain.po.RasPo ras set ras.state='58',ras.errorCode='102' where ras.sysFlag=0 and ras.deviceId=?]
at org.hibernate.hql.classic.ClauseParser.token(ClauseParser.java:106) ~[com.springsource.org.hibernate-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.hql.classic.PreprocessingParser.token(PreprocessingParser.java:131) ~[com.springsource.org.hibernate-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.hql.classic.ParserHelper.parse(ParserHelper.java:51) ~[com.springsource.org.hibernate-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:240) ~[com.springsource.org.hibernate-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:209) ~[com.springsource.org.hibernate-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101) ~[com.springsource.org.hibernate-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80) ~[com.springsource.org.hibernate-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:124) ~[com.springsource.org.hibernate-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156) ~[com.springsource.org.hibernate-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135) ~[com.springsource.org.hibernate-3.6.10.Final.jar:3.6.10.Final]
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1770) ~[com.springsource.org.hibernate-3.6.10.Final.jar:3.6.10.Final]
at org.springframework.orm.hibernate3.HibernateTemplate$39.doInHibernate(HibernateTemplate.java:1143) ~[org.springframework.orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate$39.doInHibernate(HibernateTemplate.java:1) ~[org.springframework.orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406) ~[org.springframework.orm-3.0.5.RELEASE.jar:3.0.5.RELEASE]
... 29 common frames omitted
2012-09-19 19:49:16,290 ERROR [sbus-1-thread-5] [com.huawei.cie.nodemgr.sbus.core.skeleton.ServiceSkeletonImpl.process(98)] SBUS Process request msg error
com.huawei.cie.nodemgr.sbus.pack.invoke.ServiceFault: query must begin with SELECT or FROM: update [update com.huawei.cie.omu.maintenance.ras.domain.po.RasPo ras set ras.state='58',ras.errorCode='102' where ras.sysFlag=0 and ras.deviceId=?]; nested exception is org.hibernate.QueryException: query must begin with SELECT or FROM: update [update com.huawei.cie.omu.maintenance.ras.domain.po.RasPo ras set ras.state='58',ras.errorCode='102' where ras.sysFlag=0 and ras.deviceId=?]
at com.huawei.cie.nodemgr.sbus.core.skeleton.ServiceSkeletonImpl.invoke(ServiceSkeletonImpl.java:153) ~[com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at com.huawei.cie.nodemgr.sbus.core.skeleton.ServiceSkeletonImpl.process(ServiceSkeletonImpl.java:93) ~[com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at com.huawei.cie.nodemgr.sbus.core.mgr.local.RequestMsgHandler.onMessage(RequestMsgHandler.java:52) [com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at com.huawei.cie.nodemgr.sbus.transport.SBusPortImpl.receiveMsg(SBusPortImpl.java:111) [com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at com.huawei.cie.nodemgr.sbus.transport.MqMessageHandler$MsgDispatcher.run(MqMessageHandler.java:110) [com.huawei.cie.nodemgr.sbus-1.0.0-SNAPSHOT.jar/:1.0.0-SNAPSHOT]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_26]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_26]
at java.lang.Thread.run(Unknown Source) [na:1.6.0_26]
2012年9月19日 11:19
2个答案 按时间排序 按投票排序
-
1、你的antlr版本是多少? 看看有没有冲突的 更新到hibernate-3.6.10 包中带的最新的试试
2、如果【1】不行修改hibernate配置:
hibernate.query.factory_class 为
org.hibernate.hql.ast.ASTQueryTranslatorFactory
或
org.hibernate.hql.classic.ClassicQueryTranslatorFactory2012年9月19日 12:14
-
getHibernateTemplate().bulkUpdate("update RasPo ras set ras.state='58',ras.errorCode='102' where ras.sysFlag=0 and ras.deviceId=?",
deviceId);
这样用很正确的。 怀疑是不是一起用Query 现在改成bulkUpdate 没有编译造成的?
能否贴全异常2012年9月19日 11:48
相关推荐
gethibernatetemplate的find方法,find(String queryString);find(String queryString , Object value);find(String queryString, Object[] values);findByExample(Object exampleEntity);findByExample(Object ...
整合了hibernate的getHibernateTemplate()使用方法 全面详细 带有相应的例子
getHibernateTemplate()查询 hibernate hql
getHibernateTemplate()有模糊查询和 分页getHibernateTemplate()有模糊查询和 分页
getHibernateTemplate()方法
手机充值卡全过程 纯净的练习s2sh的过程 package dao.hibernate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport;... this.getHibernateTemplate().update(card); }
jsp中调用dao的getHibernateTemplate()时,报空指针
getHibernateTemplate分页-模糊查询.hibernate查询以及分页查询等方法使用。
find(String queryString , Object value); 示例:this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); 这样的例子里面还有很多
弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...
public class UserDAO extends HibernateDaoSupport implements IUserDAO { public void insertUser(User user) { getHibernateTemplate().saveOrUpdate(user); } } <br> 上面的...
1.本例子的使用了 ssh ...2.本例子DAO层 使用了 getHibernateTemplate 来实现数据的新增修改和删除 3.本例子使用了声明式事务 4.本例子提供了详细的使用方法,可以根据 readme.txt 来逐步的验证声明式事务是否起作用
其中save(FileActionForm fileForm)方法,将封装在fileForm中的上传文件保存到数据库中,这里我们使用FileActionForm作为方法入参,FileActionForm是Web层的表单数据对象,它封装了提交表单的数据。将...
SSH2增删改查使用HibernateTemplate
在 DAO 实现类 BookDAO.java 代码如下: public List getRequiredBookByName(String name){ try{ List books=this.getHibernateTemplate(). find("from Book where bookname like '%"+name+"%'"); return books; }...
这是之前分页的升级版 带国际化 表单验证 用户登录 安全退出 功能都实现了... List list= this.getHibernateTemplate().find("from Students where username=? and password=?", param); return list.isEmpty(); }
<property name="hibernate.hbm2ddl.auto">update <property name="hibernate.show_sql">true <mapping resource="cn/itcast/crm/domain/SysUserGroup.hbm.xml"/> * 测试.放置在junit包...
Spring 的框架提供了getHibernateTemplate ().findByCriteria(detachedCriteria) 方法可以很方便地根据DetachedCriteria 来返回查询结 果。 DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName...
我就是问: getHibernateTemplate()这个方法里没有执行sql语句的方法,只能用hql语句吗?
解决getHibernateTemplate().save ()不能将数据保存到数据库的问题JusterDu 2016-03-15 08:38:57 1857