2013-02-26 69 views
1

使用会话命名查询可以像下面进行检索?休眠获得命名的查询字符串没有会话

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

定义的命名查询不与Hibernate 4.改变

+0

'NamedQuery'不能在运行时动态修改。 – 2013-02-26 03:18:15

回答

0
SessionFactoryImplementor sesionFactoryImplementor=(SessionFactoryImplementor)sessionFactory; 

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

作品作为拿烟Wadekar评论说你不能在运行时修改它。

+0

谢谢,但我可以从字符串'Session.createSQLQuery(String)'创建一个新的查询' – djmj 2013-03-01 00:17:11

0

这很适合我:

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

希望这有助于!