解释查询时出错[更新Student set Student.email =:email];这可能表示语义(用户查询)问题或解析器中的错误

时间:2019-04-07 12:49:56

标签: java mysql hibernate hql

我正在使用MySQL数据库从视频教程中学习休眠 我正在逐步执行操作,当我尝试在所有记录上执行查询以更新数据库中的“发生错误解释查询”时。更奇怪的是执行相同查询的人顺利通过了

 public static void main(String[] args) {

     SessionFactory factory = new Configuration()
     .configure("hibernate.cfg.xml")
     .addAnnotatedClass(Student.class)
     .buildSessionFactory();

     Session session = factory.getCurrentSession();
     session.beginTransaction();

Query email = session.createQuery("UPDATE Student SET email=:email");
 email.setParameter("email", "code@gmail.com");
 email.executeUpdate();

 session.getTransaction().commit;
 session.close();

 }

我希望所有来自数据库的电子邮件都将被更新,但不是执行查询,而是得到

线程“主”中的异常org.hibernate.query.sqm.InterpretationException:解释查询错误[update Student set email =:email];

这可能表示语义(用户查询)问题或错误在解析器中的org.hibernate.query.sqm.produce.internal.SemanticQueryProducerImpl.interpret(SemanticQueryProducerImpl.java:66)

好的,我发现了问题所在,我使用了休眠核心6Alpha版本。我切换到5.4.2.Final,一切正常执行,没有任何问题

0 个答案:

没有答案