'session.createQuery'有什么作用?

时间:2013-06-28 05:51:54

标签: java hibernate java-ee

做什么:

session.createQuery(hqlString);

做什么?

它是否也创建并运行查询?

2 个答案:

答案 0 :(得分:0)

它会创建一个Query对象,不会运行

创建Query对象后,您可以使用setParameter()重载方法设置参数。并在查询对象上调用list()运行查询并返回结果列表。

Query类的Javadoc指出

  

通过调用list(),scroll()或iterate()来执行查询。一个问题   可以通过后续调用重新执行。它的寿命是,   然而,受创建它的会议的生命周期所限制。

答案 1 :(得分:0)

createQuery只会使用您传入的hql值实例化查询对象。 它不运行查询,只有在调用executeUpdate时才会运行。

更多信息可以在下面找到。

的createQuery: http://docs.jboss.org/hibernate/core/3.6/api/org/hibernate/Session.html#createQuery(java.lang.String)

的executeUpdate: http://docs.jboss.org/hibernate/orm/3.3/javadocs/org/hibernate/Query.html#executeUpdate()

(更新)关于如何执行查询的评论,可以在下面找到一个旧教程: http://www.mkyong.com/hibernate/hibernate-query-examples-hql/