是否可以将 JPQL 查询转换为 SQL 并将此查询保存到数据库?
我想在开发程序时编写 JPQL 查询。但是 whet 会将应用程序部署到服务器我需要将查询编译到本机 SQL 取决于 DB。
我找到了 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();
谢谢:
将没有 JPA 标准方法来获取 SQL。EclipseLink 的特定解决方案可在 EclipseLink 的常见问题解答http://wiki.eclipse.org/EclipseLink/FAQ/JPA#How_to_get_the_SQL_for_a_Query.3F中找到