Java hibernate-获取不带会话的命名查询字符串

Java hibernate-获取不带会话的命名查询字符串,java,hibernate,session,Java,Hibernate,Session,使用会话可以检索命名查询,如下所示: Query query = session.getNamedQuery(queryName); 但是,如何在不使用会话的情况下检索命名查询呢 我正在动态修改查询字符串,此时不需要会话 未更改已定义的命名查询 使用Hibernate4。正如Nayan Wadekar所评论的,您不能在运行时修改它 这对我来说很有效: Query query = em.createNamedQuery(namedQuery); String hql = query.unwrap

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

Query query = session.getNamedQuery(queryName);
但是,如何在不使用会话的情况下检索命名查询呢

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

未更改已定义的命名查询


使用Hibernate4。正如Nayan Wadekar所评论的,您不能在运行时修改它

这对我来说很有效:

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

希望这有帮助

NamedQuery
无法在运行时动态修改。谢谢,但是我可以从string
会话创建一个新查询。createSQLQuery(string)
您可以创建一个新查询,但是您还需要重置参数以及其他查询详细信息。
Query query = em.createNamedQuery(namedQuery);
String hql = query.unwrap(org.hibernate.Query.class).getQueryString();