Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate HQL查询工作不正常?_Hibernate_Hql - Fatal编程技术网

Hibernate HQL查询工作不正常?

Hibernate HQL查询工作不正常?,hibernate,hql,Hibernate,Hql,我有这个密码 System.out.println("Executing Select Query"); Query query = session.createQuery("from Student where name=:name"); query.setParameter("name", "Raj"); List list = query.list(); Iterator it = list.iterator(); while (it.ha

我有这个密码

System.out.println("Executing Select Query");

    Query query = session.createQuery("from Student where name=:name");

    query.setParameter("name", "Raj");

    List list = query.list();

    Iterator it = list.iterator();

    while (it.hasNext()) {

        Student stud = (Student) it.next();

        System.out.println(stud.getName());

        System.out.println(stud.getStandard());

    }

    System.out.println("Executing Update");

    Transaction tx1 = session.beginTransaction();

    Query queryupdate = session

            .createQuery("update Student set standard = :standard where name = :name");

    queryupdate.setParameter("name", "Raj");

    queryupdate.setParameter("standard", "Third Standard");

    int result = queryupdate.executeUpdate();

    tx1.commit();

    System.out.println("Student record updated " + result);
下选择query(query query=session.createQuery(“来自学生,其中name=:name”)

上一行是从数据库中选择值

updatequeryqueryupdate=session.createQuery(“更新学生集标准=:标准,其中名称=:名称”)未在数据库中执行更新,但
queryupdate.executeUpdate()正在更新数据库


所以我的问题是如何
session.createQuery()方法在两个查询中的工作方式不同。请逐行向我解释上述程序的执行情况。

我不确定我是否理解您的问题是否正确

它是
.list()
;这实际上是在执行select查询

执行更新查询的是
.executeUpdate()

所以我的问题是session.createQuery()如何;方法在两个查询中的工作方式不同

没有。它的工作方式没有什么不同。

  • 对于
    select
    update
    查询返回给定HQL查询字符串的
    query
    类型的实例,请记住,它不会触发任何查询
    select
    update

  • 语句,执行查询并分别以list和int返回结果


  • 谢谢K.C.你的回答,我真的想投你金色的票给你,但我无法投票。当我点击金色时,没有任何事情发生,顺便说一句谢谢。谢谢你Aniket Kulkarni的回答,我真的想投你金色的票给你,但我无法投票。当我点击金色时,没有任何事情发生,顺便说一句谢谢再一次。我得到了queryupdate。executeUpdate()执行更新,但我找不到任何显示query.list的文档。请执行查询。请告诉我有关此的任何参考资料,然后我将非常乐意接受您的回答。请提供帮助me@TruePS:如果滚动到页面顶部,您可以看到调用list()执行
    查询,滚动()或迭代()。