在我的hibernate查询中,我有:
public void updateStudent(Student student) {
String hql = "update Student set article =:null,id=2"
+"where article=:"+ student.getArticle();
sessionFactory.getCurrentSession().createQuery(hql);
}
在这里,我想设置学生表的文章值= null和id = 2 ..但是
every time an error is occurring:
node to traverse cannot be null!
Caused by:
java.lang.IllegalArgumentException: node to traverse cannot be null!
我的实际mysql查询是:
UPDATE student
SET article='null', id=2
WHERE article='xyz'; here xyz=user.getArticle()
我做错了什么?
答案 0 :(得分:0)
正如@JBNizet在评论中提到的那样,您需要查阅文档。但你需要这样的东西来设置你的参数。
public void updateStudent(Student student) {
String hql = "update Student set article = null, id = 2"
+ " where article = :article";
sessionFactory.getCurrentSession()
.createQuery(hql)
.setParameter("article", student.getArticle()) ... etc
}
P.S。当您看起来正在删除文章值时,我无法理解为什么要设置学生的ID。