我想在代码中找出我的数据源名称。有没有办法做到这一点? 我正在使用eclipselink。
谢谢 更具体地说,我的目标是获取一个 jdbc 连接对象。 我知道我可以做到这一点:
datasource = (DataSource) (new InitialContext()).lookup("my_data_source_name")
connection = dataSource.getConnection();
但我不想在我的代码中硬编码数据源名称。
我也试过了
java.sql.Connection connection = em.unwrap(java.sql.Connection.class);
它总是返回 null。
最佳答案
.unwrap()
应该是要走的路,如 EclipseLink wiki 中所写.
我也曾经在调用 em.unwrap(java.sql.Connection.class);
时得到 null,因为它不在事务中。当这样调用时:
em.getTransaction().begin();
java.sql.Connection conn = em.unwrap(java.sql.Connection.class);
// ...
em.getTransaction().commit();
一切正常!
关于JPA - 有没有办法/方法来检索持久性单元信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6046491/