Hibernate 取回 Connection

過去在Hibernate3取回Connection

Connection conn = ((org.hibernate.internal.SessionFactoryImpl)((org.hibernate.Session)em.getDelegate()).getSessionFactory()).getCurrentSession().getConnectionProvider().getConnection();

現在在Hibernate4、5拿掉了SessionFactoryImpl下的getConnectionProvider()方法;改用doWork方式。

根據網頁上的討論說法:

http://stackoverflow.com/questions/5640778/hibernate-sessionfactory-vs-entitymanagerfactory

// 好像不該這樣用!

// // // Session session = ((org.hibernate.internal.SessionFactoryImpl)((org.hibernate.Session)em.getDelegate()).getSessionFactory()).getCurrentSession();

// // // 這樣好像也沒比較好!

// Session session = em.unwrap(Session.class);
// SessionFactoryImplementor sfi = (SessionFactoryImplementor) session.getSessionFactory();
// ConnectionProvider cp = sfi.getConnectionProvider();
// Connection conn = cp.getConnection();

Session session = em.unwrap(Session.class);
session.beginTransaction();
rtn = session.doReturningWork(new ReturningWork<String>(){
@Override
public String execute(Connection conn) throws SQLException {
}
});
session.getTransaction().commit();
session.close();

廣告

About fenjj

Perfect !!??...
本篇發表於 Uncategorized。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s