1

我有一个 JSF,EclipseLink 应用程序。我使用 JasperReports 来导出我需要创建连接的报告。

JasperPrint jasperPrint = JasperFillManager.fillReport(File, Hash Map, Connection)

我无法访问我当前的连接(我在持久性 xml 中定义的数据源)。我尝试了不同的方法,但唯一有效的是创建一个新的连接。我对在我的代码中硬编码连接参数感觉不太好。有没有办法可以读取数据源的参数,所以我可以创建具有相同参数的连接?

4

1 回答 1

1

我不确定您的意思是什么,您不能像使用数据源一样从persistence.xml 访问连接,它是在其他地方定义的,persistence.xml 用于定义提供者应如何从容器中获取它。所以如果它是一个数据源,持久化单元不会有任何关于连接本身的信息,但是你应该可以从容器中查找它。

您可以从 EclipseLink 获取连接,如下所述:http: //wiki.eclipse.org/EclipseLink/Examples/JPA/EMAPI#Getting_a_JDBC_Connection_from_an_EntityManager

您还可以使用此代码从会话中获取登录对象,如果您不使用数据源,它将包含连接信息。

于 2012-01-12T14:43:02.737 回答