TopLink与JPA建立了更多联系

时间:2012-09-04 12:07:05

标签: jpa connection toplink

在我的应用程序中,我们使用Toplink和Jpa。 这里的问题是我们在这个应用程序中使用存储过程,我们使用Jndi连接进行Stored Procedure调用连接,我们使用EntityManger进行剩余查询。但是,如果我们启动应用程序,它将从连接池中获取两个连接。应用程序启动后,我调用存储过程(sp) 一个sp我正在接受一个连接但是在websphere连接池中它创建了两个连接? 我可以帮助我如何克服这个问题......

我不会使用JTA来获取我正在使用的JDBC连接

EntityManager em = getJpaTemplate()。getEntityManagerFactory()。createEntityManager();

这样我就获得了JDBC Connection ...并且我在代码...

之后配置了persitence.xml文件
<properties>
    <property name="toplink.logging.level" value="OFF"/>
    <property name="toplink.cache.type.default" value="NONE"/>
    <property name="com.thoughtinc.runtime.persistence.sql.syntax" value="db2" />
</properties>

所以,请仔细研究一下,如果我在这里做错了,请告诉我。

1 个答案:

答案 0 :(得分:0)

您使用的是JTA还是非JTA?使用后是否将连接释放回池中?

根据您的配置(包括您的persistence.xml),如果您配置了非JTA登录,则TopLink可以将此用于非事务性读取查询。这可以在persistence.xml中配置。

要从TopLink(EclipseLink)EntityManager获取JDBC连接,请使用em.unwrap(Connection.class)