JPA和PostgreSQL

Bla*_*ppo 5 java postgresql jpa eclipselink

我正在使用JPA的EclipseLink实现来与PostgreSQL数据库进行通信的项目.我有一个任务,PostgreSQL NOTIFY/LISTEN似乎是一个完美的契合.不幸的是,我是一个JPA新手,我正在努力弄清楚如何让它工作.所以我想我真的有两个问题; 回答任何一个都会让我开心.

1)对于掌握与数据库的直接JDBC连接,最好的方法是什么?(我真心希望这将成为类型org.postgresql.PGConnection.)

要么

2)org.postgresql.PGConnection.getNotifications()通过EclipseLink JPA 模拟/访问的最佳方式是什么?

非常感谢您的帮助.


编辑: 两个工作解决方案!我喜欢这个网站.如果任何人有任何关于隐藏的问题/好处的说法,那么在我发出勾选标记之前,Pascal或Balus的解决方案要比其他解决方案更好,我想听听它.

Bal*_*usC 8

EclipseLink wiki中EntityManager回答了从EclipseLink中获取JDBC连接的问题.

每个JPA API版本的方式不同.这是wiki的摘录:

JPA 2.0

entityManager.getTransaction().begin();
java.sql.Connection connection = entityManager.unwrap(java.sql.Connection.class);
...
entityManager.getTransaction().commit();
Run Code Online (Sandbox Code Playgroud)

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();
Run Code Online (Sandbox Code Playgroud)