我的namedQuery:
@NamedQuery(name = "myUpdate", query = "update User set country = 'EN' where user.id = ?")
在服务层:
Query query = sessionFactory.getCurrentSession.getNamedQuery("myUpdate");
getHibernateTemplate.bulkUpdate(query.getQueryString(), id);
我收到错误:
Hibernate:更新用户,设置country = EN,其中id = 2343 ORA-00971:缺少SET关键字
现在有人怎么解决这个问题?
答案 0 :(得分:0)
您是否在hibernate.cfg.xml文件中指定了oracle dialect?您提供的命名查询由Hibernate转换为特定于数据库的查询。如果方言错误,则翻译会生成SQL,这可能是目标数据库的错误。
请参阅update User, set
中的逗号?
答案 1 :(得分:0)
似乎Hibernate在批量更新和隐式/显式连接方面存在限制。 我找到了一个解决方案 http://www.techques.com/question/1-5368522/Why-this-hibernate-template-bulkUpdate-doesn“叔工作