JPQL查询转换为SQL查询

时间:2013-09-13 08:24:23

标签: java sql jpa orm jpql

是否可以将JPQL查询转换为SQL并将此查询保存到数据库?

我想在开发程序时编写JPQL查询。但是将应用程序部署到服务器我需要编译查询到本机SQL依赖于DB。

2 个答案:

答案 0 :(得分:6)

我找到了Hibernate HQL查询的答案;

final Query query = sessionFactory.getCurrentSession().createQuery(hql);

final QueryTranslatorFactory ast = new ASTQueryTranslatorFactory();
final QueryTranslatorImpl newQueryTranslator = (QueryTranslatorImpl) ast.createQueryTranslator(queryId, query.getQueryString(), Collections.EMPTY_MAP, (SessionFactoryImplementor) sessionFactory);
newQueryTranslator.compile(null, false);
sql = newQueryTranslator.getSQLString();

感谢:

http://good-old-mushroom-called-bedla.blogspot.com/2012/04/how-to-convert-hql-to-sql-in-hibernate.html

答案 1 :(得分:1)

没有JPA标准方法来获取SQL。 EclipseLink特定解决方案可在EclipseLink的常见问题http://wiki.eclipse.org/EclipseLink/FAQ/JPA#How_to_get_the_SQL_for_a_Query.3F

中找到