问题描述
我是刚学的,问一个Hibernate的更新方法的问题getHibernateTemplate().update(entity)可以根据entity的主键来更新一个记录,但是如果想要根据条件更新多条数据呢?应该不是要循环一条条的去更新吧.我看见有个bulkUpdate的方法,参数是一个hql语句,就试了一下我的dao方法是这样的:publicvoiddelGAnswer(ExamGuestAnswerDetailsanswer){Stringhql="updateExamGuestAnswerDetailsgdsetgd.gueIsdelete=0wheregd.examStudentAnswer.usId=?";super.getHibernateTemplate().bulkUpdate(hql,answer.getExamStudentAnswer().getUsId());}但是当执行的时候Hibernate打印执行的的Sql语句却是Hibernate:updateAPTECH_BIRD.dbo.EXAM_GUEST_ANSWER_DETAILS,setGUE_ISDELETE=0whereUS_ID=?2009-01-1204:52:22,625[org.hibernate.util.JDBCExceptionReporter]-[WARN]SQLError:102,SQLState:S00012009-01-1204:52:22,625[org.hibernate.util.JDBCExceptionReporter]-[ERROR]','附近有语法错误。中间多了个逗号,就报错了.这个方法好像不行,希望有人能说一下批量更新的最简便的方法
解决方案
解决方案二:
你的逗号是在哪里多出来的
解决方案三:
APTECH_BIRD.dbo.EXAM_GUEST_ANSWER_DETAILS,这里多的
解决方案四:
那里多出个逗号来sql语句就是错的了,当然会报错你把逗号去掉看看吧
解决方案五:
哎,这个sql是Hibernate给我生成的
解决方案六:
那就通过更改源代码重新生成class文件呗,这样可以解决Bug
解决方案七:
直接执行sql得了。
解决方案八:
hibernate的bug