在DefaultJpaDialect.releaseJdbcConnection()中,doc说: "假设使用EntityManager隐式关闭Connection,此实现不执行任何操作。
如果JPA实现返回一个Connection句柄,它希望应用程序在使用后关闭,那么dialect实现需要在这里调用Connection.close()(或其他具有类似效果的方法)。"
在EclipseLinkJpaDialect.getJdbcConnection()中,它返回EclipseLinkConnectionHandle。 但是,在EclipseLinkConnectionHandle中似乎没有releaseConnection的实现代码。
private static class EclipseLinkConnectionHandle implements ConnectionHandle {
private final EntityManager entityManager;
private Connection connection;
public EclipseLinkConnectionHandle(EntityManager entityManager) {
this.entityManager = entityManager;
}
@Override
public Connection getConnection() {
if (this.connection == null) {
this.connection = this.entityManager.unwrap(Connection.class);
}
return this.connection;
}
@Override
public void releaseConnection(Connection con) {
}
}
在这种情况下,如何关闭打开的连接?或者连接是如何关闭的?