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