Hibernate版本3.3.2GA
protected String hqlToSql(String hql,
org.hibernate.SessionFactory sessionFactory) throws Exception {
org.hibernate.hql.ast.QueryTranslatorImpl queryTranslator = new org.hibernate.hql.ast.QueryTranslatorImpl(
hql, hql, java.util.Collections.EMPTY_MAP,
(org.hibernate.engine.SessionFactoryImplementor) sessionFactory);
queryTranslator.compile(java.util.Collections.EMPTY_MAP, false);
return queryTranslator.getSQLString();
}
注:
以上转出来的SQL是不带参数值的,即HQL中的?转换后仍然是?。
转成完全可直接copy执行的SQL,尚在研究中……
本文介绍了一种在Hibernate 3.3.2GA版本中将HQL转换为SQL的方法。通过使用QueryTranslatorImpl,可以将HQL查询转换成对应的SQL语句。需要注意的是,此方法转换出的SQL不会包含具体的参数值。
1520

被折叠的 条评论
为什么被折叠?



