0
我試圖爲與給定實體管理器(TRANSACTION_SERIALIZABLE
等)關聯的連接設置事務隔離級別。Java JPA,使用實體管理器設置事務隔離級別
我已經搜索了一個解決方案,並找到了一些解決方案。但是,他們似乎都沒有工作。
當我試圖做到以下幾點:
EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("BankingPU");
public EntityManager em = emfactory.createEntityManager();
java.sql.Connection connection = (java.sql.Connection) em.getDelegate();
connection.setTransactionIsolation(TRANSACTION_SERIALIZABLE);
我得到以下異常:
Exception in thread "main" java.lang.ClassCastException:
org.eclipse.persistence.internal.jpa.EntityManagerImpl cannot be cast to java.sql.Connection
當我做
EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("BankingPU");
public EntityManager em = emfactory.createEntityManager();
java.sql.Connection connection = em.unwrap(java.sql.Connection.class);
存儲到connection
值爲null
。
我跑爲了下面找到更多:
Object obj = em.getDelegate();
存儲在obj
類的類型org.eclipse.persistence.internal.jpa.EntityManagerImpl
編輯:(哎呀,你猜我可以告訴,從除外)
EDIT2:
我已成功地獲得了會議(我認爲)致電:
Session session = ((EntityManagerImpl) em).getSession();
但是,它們都不存在connection()
或DoWork()
方法。
任何想法如何跟進並設置事務隔離級別?
你要提,你是看似使用Hibernate,因爲你發佈將是完全無用的任何其他JPA實現,所以這個「答案」不JPA的答案,但明確只針對HIBERNATE –