sesssion.connection() возвращает NewProxyConnection сгенерированный класс c3p0 пула. Мне же нужно получить org.postgresql.PGConnection, т.е. Connection для моей СУБД, чтобы выполнить кастомный метод для неё. В моём случае нужно выполнить connection.getLargeObjectAPI(). Как-то можно вытащить org.postgresql.PGConnection?
Здравствуйте, Foror, Вы писали:
F>sesssion.connection() возвращает NewProxyConnection сгенерированный класс c3p0 пула. Мне же нужно получить org.postgresql.PGConnection, т.е. Connection для моей СУБД, чтобы выполнить кастомный метод для неё. В моём случае нужно выполнить connection.getLargeObjectAPI(). Как-то можно вытащить org.postgresql.PGConnection?
А там разве нет такого метода?
rawConnectionOperation
Здравствуйте, Blazkowicz, Вы писали:
B>А там разве нет такого метода?
B>rawConnectionOperation
Есть, но с ним получается вот такой монстр
(LargeObjectManager) ((C3P0ProxyConnection) ((ConnectionWrapper) session.connection()).getWrappedConnection())
.rawConnectionOperation(
PGConnection.class.getDeclaredMethod("getLargeObjectAPI", new Class[]{}),
C3P0ProxyConnection.RAW_CONNECTION,
new Object[]{});
Думал, может есть что попроще
Здравствуйте, Foror, Вы писали:
F>Есть, но с ним получается вот такой монстр
F>Думал, может есть что попроще
Такой монстр гарантирует что ты таки не сможешь вызвать close() физического соединения. А мог бы если бы пул давал доступ к нему на прямую.