我正在使用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)