2

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

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

4

2 回答 2

8

我找到了 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

于 2013-09-13T13:32:45.050 回答
1

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

于 2013-09-13T17:18:28.690 回答