我想像这样使用postgres CopyManager:

CopyManager cp = ((PGConnection) dataSource.getConnection()).getCopyAPI();

当我使用spring-boot时,数据源是org.apache.tomcat.jdbc.pool.DataSource,因此连接是Jdbc4Connection

问题:转换抛出以下错误:
java.lang.ClassCastException: com.sun.proxy.$Proxy55 cannot be cast to org.postgresql.PGConnection

另外,当我尝试强制转换为Jdbc4Connection时,也会遇到同样的错误!
java.lang.ClassCastException: com.sun.proxy.$Proxy55 cannot be cast to org.postgresql.jdbc4.Jdbc4Connection

我能做些什么?

最佳答案

如果您使用的是javax.sql.DataSource,则可以使用以下解决方案:

if (dataSource.getConnection().isWrapperFor(PGConnection.class)) {
  PGConnection pgConnection = dataSource.getConnection().unwrap(PGConnection.class);
}

希望这可以帮助。

09-09 21:40