小编Sto*_*hen的帖子

如何从Entity Manager获取jpa数据源属性

大家好

我想知道是否可以通过实体管理器获取数据库连接属性.

我的persistence.xml看起来像这样

<persistence ...>
     <persistence-unit name="default" transaction-type="JTA">
          <jta-data-source>DatasourceForTestSystem</jta-data-source>
          <class> some.package.and.some.Class </class>
          ...
     </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西

String host = em.getSomeFunction().getProperties().get("server");
String database = em.getSomeFunction().getProperties().get("database");
or
String url = em.getSomeFunction().getConnectionPool().getURL();
Run Code Online (Sandbox Code Playgroud)

url是什么样的jdbc:oracle:thin:@1.2.3.4:5678:database.我正在使用带有EclipseLink的JDeveloper 12c,一个Oracle数据库和NO Hibernate.

有人知道如何获取有关连接属性的信息吗?

亲切的问候,

STEFI

- 更新 -

@Kostja:再次请求你的帮助,但正如我在帖子中提到的,我根本不使用Hibernate.

我已经尝试过像这样使用Connection.class了

java.sql.Connection conn = em.unwrap(java.sql.Connection.class);
Run Code Online (Sandbox Code Playgroud)

这里开始.我总是在这个语句中为Connection和getSession()提供NPE

((JNDIConnector)em.unwrap(JpaEntityManager.class)
    .getSession().getLogin().getConnector()).getName();
Run Code Online (Sandbox Code Playgroud)

这里开始.

我很安静,为什么这些解决方案对我有用.也许我错过了什么:-(

java jpa jta entitymanager

6
推荐指数
1
解决办法
8709
查看次数

标签 统计

entitymanager ×1

java ×1

jpa ×1

jta ×1