hibernate - 获取没有session的命名查询字符串

时间:2013-02-26 02:38:04

标签: java hibernate session

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

Query query = session.getNamedQuery(queryName);

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

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

定义的命名查询未更改

2 个答案:

答案 0 :(得分:0)

SessionFactoryImplementor sesionFactoryImplementor=(SessionFactoryImplementor)sessionFactory;

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

适用于Hibernate 4.正如Nayan Wadekar所述,您无法在运行时对其进行修改。

答案 1 :(得分:0)

这对我很有用:

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

希望这有帮助!