1

在我的应用程序中,我们将 Toplink 与 Jpa 一起使用。这里的问题是我们在这个应用程序中使用存储过程,我们使用 Jndi 连接进行存储过程调用,我们使用 EntityManger 进行剩余查询。但是在这里,如果我们启动应用程序,它会从连接池中获取两个连接。应用程序启动后,我调用存储过程(sp)一个 sp 我正在建立一个连接,但在 websphere 连接池中它正在创建两个连接?你能帮我解决这个问题吗.....

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

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

这样我就得到了 JDBC 连接......并且我按照代码配置了 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>

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

4

1 回答 1

0

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

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

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

于 2012-09-04T13:40:12.003 回答