5
是否有可能在運行時轉換的HSQL語句中使用的EntityManager到SQL?HQL中的Java SQL 5
我發現這個解決辦法,但我沒有SessionFactory的,我的EntityManager
protected String toSql(String hqlQueryText) {
if (sessionFactory != null && hqlQueryText != null && hqlQueryText.trim().length() > 0) {
final QueryTranslatorFactory translatorFactory = new ASTQueryTranslatorFactory();
final SessionFactoryImplementor factory = (SessionFactoryImplementor) sessionFactory;
final QueryTranslator translator = translatorFactory.createQueryTranslator(hqlQueryText, hqlQueryText,
Collections.EMPTY_MAP, factory);
translator.compile(Collections.EMPTY_MAP, false);
return translator.getSQLString();
}
return null;
}
對不起,但我在EntityManager API中找不到getEntityManagerFactory http://docs.oracle.com/javaee/5/api/javax/persistence/EntityManager.html – 2012-07-31 15:56:51
從JPA 2.0開始可用。請參閱:http://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager.html#getEntityManagerFactory() – MicSim 2012-07-31 16:03:17
感謝@MicSim我將編輯我的問題。 – 2012-08-01 07:43:13