Я использую JDBI для подключения к моей базе данных Postgres.Это работало нормально.Сегодня я решил попробовать заменить родной драйвер Postgres на драйвер PGJDBC-NG .Все хорошо, пока я не попробую свой первый простой запрос:
jdbi.useExtension(FooDao.class, dao -> {
dao.insert(e);
});
К сожалению, это приводит к:
org.jdbi.v3.core.ConnectionException: java.sql.SQLException:Ошибка развертывания
При отладке в приложении обнаружена исключительная ситуация в методе customizeHandle
класса PostgresPlugin
JDBI:
@Override
public Handle customizeHandle(Handle handle) {
PGConnection pgConnection = Unchecked.supplier(() -> handle.getConnection().unwrap(PGConnection.class)).get();
return handle.configure(PostgresTypes.class, pt -> pt.addTypesToConnection(pgConnection));
}
Исключение выдается в первой строкев методе unwrap
.Кажется, проблема в том, что с новым драйвером getConnection
возвращает экземпляр PGDirectConnection
, который нельзя назначить из PGConnection
, как указывает вызов метода unwrap.
Есть ли обходной путь для этого?Я думаю, что я мог бы просто расширить PostgresPlugin
и переопределить реализацию customizeHandle
, чтобы развернуть, используя PGDirectConnection
, но я бы предпочел этого не делать, если это возможно.
Редактировать : Тьфу, не может переопределить customizeHandle
, потому что PostgresTypes.addTypesToConnection
не является общедоступным.