とは:
session.createQuery(hqlString);
行う ?
また、クエリを作成して実行しますか?
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/
Queryオブジェクトを作成しますが、実行されません。
Query
オブジェクトが作成されると、オーバーロードされたメソッドを使用してパラメーターを設定できますsetParameter()
。クエリオブジェクトを呼び出すlist()
と、クエリが実行され、結果のリストが返されます。
Query
クラスの Javadoc には、次のように記載されています。
クエリは、list()、scroll()、または iterate() を呼び出すことによって実行されます。クエリは、後続の呼び出しによって再実行される場合があります。ただし、その寿命は、それを作成したセッションの寿命によって制限されます。