hibernate query java.lang.IllegalArgumentException:遍历的节点不能为null

时间:2015-08-01 12:22:47

标签: java hibernate spring-mvc hql

在我的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()

我做错了什么?

1 个答案:

答案 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。