EntityManager獲取connection進行jdbc操做

鑑於hibernate一些查詢的侷限性,此次就碰到一不支持as別名、二來因須要連表查詢select t1.id和t5.id,log上打印的sql語句在navicat中執行數據都是對的兩個不一樣的id,但在查詢出來的Object[]數組中獲取的兩個字段值是同樣的。這就尷尬了。
根據使用的jar版本不一樣獲取的方式會有差別,用em的unwrap()方法會報nusuchmethod異常。
EntityManager em = this.getJpaTemplate().getEntityManagerFactory()
			.createEntityManager();
Session session = (org.hibernate.Session) em.getDelegate();
SessionFactoryImplementor sf=(SessionFactoryImplementor)session.getSessionFacory(); 
Connection connection =sf.getConnectionProvider().getConnection();
*以後使用的方式就是最基礎的jdbc操做了,記得在try-catch代碼塊中寫,最後在finally中關閉connection、preparedstatement、resultset。
相關文章
相關標籤/搜索