一尘不染

在纯JPA设置中获取数据库连接

hibernate

我们有一个JPA应用程序(使用hibernate),我们需要将调用传递给需要JDBC数据库连接作为参数的旧式报告工具。有没有一种简单的方法可以访问hibernate已设置的JDBC连接?


阅读 601

收藏
2020-06-20

共1个答案

一尘不染

您想在哪里获得该连接尚不清楚。一种可能是从.NET Session使用的基础Hibernate中获取它EntityManager。使用JPA
1.0,您必须执行以下操作:

Session session = (Session)em.getDelegate();
Connection conn = session.connection();

请注意,该getDelegate()方法不是可移植的,此方法的结果特定于实现:上面的代码在JBoss中有效,对于GlassFish,您必须对其进行调整-
请看一下使用EntityManager.getDelegate()要小心

在JPA 2.0中,情况要好一些,您可以执行以下操作:

Connection conn = em.unwrap(Session.class).connection();

如果您在容器中运行,还可以在configure上执行查找DataSource

2020-06-20