JPQLクエリをSQLに変換し、このクエリをデータベースに保存することはできますか?
プログラム開発時にJPQLクエリを書きたい。しかし、アプリケーションをサーバーにデプロイするには、DB に依存するネイティブ 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();
おかげで: