能否将JPQL查询转换为SQL并将此查询保存到数据库中?
我在开发程序时想要编写JPQL查询。但是当部署应用程序到服务器上时,需要根据数据库编译查询为本地SQL。
能否将JPQL查询转换为SQL并将此查询保存到数据库中?
我在开发程序时想要编写JPQL查询。但是当部署应用程序到服务器上时,需要根据数据库编译查询为本地SQL。
我找到了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