セッションを使用すると、次のように名前付きクエリを取得できます。
Query query = session.getNamedQuery(queryName);
しかし、セッションを使用せずに名前付きクエリを取得するにはどうすればよいでしょうか。
クエリ文字列を動的に変更しているので、現時点ではセッションは必要ありません。
定義された名前付きクエリは変更されません
SessionFactoryImplementor sesionFactoryImplementor=(SessionFactoryImplementor)sessionFactory;
sesionFactoryImplementor.getNamedQuery("test").getQueryString();
Hibernate 4で動作します。NayanWadekarがコメントしたように、実行時に変更することはできません。
これは私にとってうまく機能します:
Query query = em.createNamedQuery(namedQuery);
String hql = query.unwrap(org.hibernate.Query.class).getQueryString();
お役に立てれば!