[英]JPA and PostgreSQL
我正在使用JPA的EclipseLink實現來與PostgreSQL數據庫進行通信的項目。 我有一個任務,PostgreSQL NOTIFY / LISTEN似乎是一個完美的契合。 不幸的是,我是一個JPA新手,我正在努力弄清楚如何讓它工作。 所以我想我真的有兩個問題; 回答任何一個都會讓我開心。
1)對於掌握與數據庫的直接JDBC連接,最好的方法是什么? (我真誠希望將證明它是org.postgresql.PGConnection
類型。)
要么
2)通過EclipseLink JPA模擬/訪問org.postgresql.PGConnection.getNotifications()
的最佳方式是什么?
非常感謝您的幫助。
EclipseLink wiki中回答了從EclipseLink中的EntityManager
獲取JDBC連接。
每個JPA API版本的方式不同。 這是wiki的摘錄:
JPA 2.0
entityManager.getTransaction().begin();
java.sql.Connection connection = entityManager.unwrap(java.sql.Connection.class);
...
entityManager.getTransaction().commit();
JPA 1.0
entityManager.getTransaction().begin();
UnitOfWorkImpl unitOfWork = (UnitOfWorkImpl)((JpaEntityManager)entityManager.getDelegate()).getActiveSession();
unitOfWork.beginEarlyTransaction();
java.sql.Connection connection = unitOfWork.getAccessor().getConnection();
...
entityManager.getTransaction().commit();
您應該能夠從EntityManager.getDelegate()
返回的org.eclipse.persistence.internal.jpa.EntityManagerImpl
中獲取它:
java.sql.Connection conn = ((EntityManagerImpl)(em.getDelegate())).getServerSession().getAccessor().getConnection();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.