1

セッションを使用すると、次のように名前付きクエリを取得できます。

Query query = session.getNamedQuery(queryName);

しかし、セッションを使用せずに名前付きクエリを取得するにはどうすればよいでしょうか。

クエリ文字列を動的に変更しているので、現時点ではセッションは必要ありません。

定義された名前付きクエリは変更されません

4

2 に答える 2

0
SessionFactoryImplementor sesionFactoryImplementor=(SessionFactoryImplementor)sessionFactory;

sesionFactoryImplementor.getNamedQuery("test").getQueryString();

Hibernate 4で動作します。NayanWadekarがコメントしたように、実行時に変更することはできません。

于 2013-02-26T10:07:47.790 に答える
0

これは私にとってうまく機能します:

Query query = em.createNamedQuery(namedQuery);
String hql = query.unwrap(org.hibernate.Query.class).getQueryString();

お役に立てれば!

于 2015-04-24T15:04:49.047 に答える