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()执行查询,滚动()或迭代()。