在我的应用程序中,我们将Toplink与Jpa一起使用。这里的问题是,我们在这个应用程序中使用存储过程,我们使用Jndi连接进行存储过程调用,并使用EntityManger进行其余查询。但在这里,如果我们启动应用程序,它将从连接池中获取两个连接。应用程序启动后,我将调用存储过程(sp)一个sp我正在进行一个连接,但在websphere连接池中它正在创建两个连接?你能帮我克服这个问题吗。。。。。
我不会使用JTA,为了获得JDBC连接,我正在使用
EntityManager em=getJpaTemplate().getEntityManagerFactory().createEntityManager();
通过这种方式,我获得JDBC连接。。。我按照代码配置了persistence.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>
所以,请调查一下,如果我在这里做错了什么,请告诉我。
您使用的是JTA还是非JTA?使用后是否将连接释放回池?
根据您的配置(包括persistence.xml),如果您配置了非JTA登录,TopLink可能会将其用于非事务读取查询。这在您的persistence.xml.中是可配置的
要从TopLink(EclipseLink)EntityManager获取JDBC连接,请使用em.unwrap(Connection.class)