Код: Выделить всё
foo() {
Connection conn = ...;
}
Код: Выделить всё
foo()[EDIT] Я использую jOOQ, которому нужен либо источник данных, либо соединение. Моя проблема: я не знаю, какой менеджер транзакций настроен. Это могло быть что угодно; Java EE, основанный на DataSource, который получает источник данных через JNDI. Мой код — это не приложение, это библиотека. Мне нужно проглотить то, что другие положили мне на тарелку. Точно так же я не могу запросить фабрику сеансов Hibernate, потому что использующее меня приложение может не использовать Hibernate.
Но я знаю другой код, например Spring Hibernate. интеграция каким-то образом может получить текущее соединение от менеджера транзакций. Я имею в виду, что Hibernate не поддерживает менеджер транзакций Spring, поэтому связующий код должен адаптировать Spring API к тому, что ожидает Hibernate. Мне нужно сделать то же самое, но я не мог понять, как это работает.
[EDIT2] Я знаю, что есть активный транзакция (т. е. у Spring где-то есть экземпляр Connection или, по крайней мере, менеджер транзакций, который может его создать), но мой метод не @Transactional. Мне нужно вызвать конструктор, который принимает java.sql.Connection в качестве параметра. Что мне делать?
Подробнее здесь: https://stackoverflow.com/questions/117 ... ransaction