1

使用 Session 可以检索命名查询,如下所示:

Query query = session.getNamedQuery(queryName);

但是如何在不使用会话的情况下检索命名查询呢?

我正在动态修改查询字符串,此时不需要会话。

定义的命名查询没有改变

4

2 回答 2

0
SessionFactoryImplementor sesionFactoryImplementor=(SessionFactoryImplementor)sessionFactory;

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

与 Hibernate 4 一起使用。正如 Nayan Wadekar 所说,您不能在运行时对其进行修改。

于 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 回答