java - JPA 和 PostgreSQL

标签 java postgresql jpa eclipselink

我正在从事一个使用 JPA 的 EclipseLink 实现与 PostgreSQL 数据库对话的项目。我有一个 PostgreSQL NOTIFY/LISTEN 似乎非常适合的任务。不幸的是,我是一个 JPA 新手,并且正在努力弄清楚如何让它工作。所以我想我真的有两个问题;回答任何一个都会让我开心。

1) 获得与数据库的直接 JDBC 连接的最佳方法是什么? (我真诚地希望证明它是 org.postgresql.PGConnection 类型。)

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

非常感谢您的帮助。


编辑: 两个可行的解决方案!我喜欢这个网站。在我给出复选标记之前,如果有人对隐藏的陷阱/好处有任何看法,这些问题会使 Pascal 或 Balus 的解决方案比另一个更好,我想听听。

最佳答案

在 EclipseLink 中从 EntityManager 获取 JDBC 连接在 EclipseLink wiki 中得到了回答。 .

方法因 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();

关于java - JPA 和 PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2067783/

相关文章:

java - JPA嵌套复合PK

java - 在哪里可以找到 jpa 2.1 osgi 包

java - 在java中的字符串中附加值

java - Spring MVC 忽略配置的 PropertyEditor 并使用构造函数代替

java - Volley 库 (PriorityBlockingQueue.java) 中的等待请求功能问题

javascript - 错误: password authentication failed for user "myuser"

java - 我应该在 Hibernate 中使用什么查询来获取 POJO?

用于分析字符串并提取数字的 Java 库

postgresql - Postgres 使用 string_agg 为 group_concat 聚合别名

django - -bash : createdb: command not found