Не подскажут ли уважаемые бест-практис для этой ситуации. То есть имеем Spring-приложение, которое персистит данные через Hibernate. В спринговом конфиге задан Hibernate transactionManager. Возможно ли использовать этот же Hibernate transactionManager для организации транзакций с использованием plain Jdbc? В референс мануале упоминается кратко, что такое возможно, если использовать DataSource из HibernateTransactionManager. Использую Jdbc через спринговый JDBCTemplate. Создаю JDBCTemplate с DataSource-м взятым из HibernateTransactionManager. Транзакция нифига не работает. Возникает такое ощущение, что она просто не коммитается в конце, потому как селекты работают нормально, а инсерты просто не попадают в базу....
Здравствуйте, Аноним, Вы писали:
А>Не подскажут ли уважаемые бест-практис для этой ситуации. То есть имеем Spring-приложение, которое персистит данные через Hibernate. В спринговом конфиге задан Hibernate transactionManager. Возможно ли использовать этот же Hibernate transactionManager для организации транзакций с использованием plain Jdbc? В референс мануале упоминается кратко, что такое возможно, если использовать DataSource из HibernateTransactionManager. Использую Jdbc через спринговый JDBCTemplate. Создаю JDBCTemplate с DataSource-м взятым из HibernateTransactionManager. Транзакция нифига не работает. Возникает такое ощущение, что она просто не коммитается в конце, потому как селекты работают нормально, а инсерты просто не попадают в базу....
А propagation для методов установлен?
Re[2]: Jdbc транзакции в Spring+Hibernate
От:
Аноним
Дата:
06.10.08 08:35
Оценка:
Здравствуйте, Blazkowicz, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
А>>Не подскажут ли уважаемые бест-практис для этой ситуации. То есть имеем Spring-приложение, которое персистит данные через Hibernate. В спринговом конфиге задан Hibernate transactionManager. Возможно ли использовать этот же Hibernate transactionManager для организации транзакций с использованием plain Jdbc? В референс мануале упоминается кратко, что такое возможно, если использовать DataSource из HibernateTransactionManager. Использую Jdbc через спринговый JDBCTemplate. Создаю JDBCTemplate с DataSource-м взятым из HibernateTransactionManager. Транзакция нифига не работает. Возникает такое ощущение, что она просто не коммитается в конце, потому как селекты работают нормально, а инсерты просто не попадают в базу.... B>А propagation для методов установлен?
В яном виде propagation не задан. То есть метод помечен как @Transactional и все. Мое понимание, что дефолтный propagation должен быть required.
Здравствуйте, Аноним, Вы писали:
А>В яном виде propagation не задан. То есть метод помечен как @Transactional и все. Мое понимание, что дефолтный propagation должен быть required.
В XML тоже все что надо сконфигурено? Просто поведение похоже на то что автокомит отключен для транзакций, но транзакционность не работает вообще. Можно подебажить спринговую проксю и посмотреть в ней по какой причине коммита не происходит.
Здравствуйте, Аноним, Вы писали:
А>Не подскажут ли уважаемые бест-практис для этой ситуации. То есть имеем Spring-приложение, которое персистит данные через Hibernate. В спринговом конфиге задан Hibernate transactionManager. Возможно ли использовать этот же Hibernate transactionManager для организации транзакций с использованием plain Jdbc? В референс мануале упоминается кратко, что такое возможно, если использовать DataSource из HibernateTransactionManager. Использую Jdbc через спринговый JDBCTemplate. Создаю JDBCTemplate с DataSource-м взятым из HibernateTransactionManager. Транзакция нифига не работает. Возникает такое ощущение, что она просто не коммитается в конце, потому как селекты работают нормально, а инсерты просто не попадают в базу....
Не зная как сконфигурирован хибернейт тяжело ответить.
Здравствуйте, Аноним, Вы писали:
А>Не подскажут ли уважаемые бест-практис для этой ситуации. То есть имеем Spring-приложение, которое персистит данные через Hibernate. В спринговом конфиге задан Hibernate transactionManager. Возможно ли использовать этот же Hibernate transactionManager для организации транзакций с использованием plain Jdbc? В референс мануале упоминается кратко, что такое возможно, если использовать DataSource из HibernateTransactionManager. Использую Jdbc через спринговый JDBCTemplate. Создаю JDBCTemplate с DataSource-м взятым из HibernateTransactionManager. Транзакция нифига не работает. Возникает такое ощущение, что она просто не коммитается в конце, потому как селекты работают нормально, а инсерты просто не попадают в базу....
Ребята, спасибо за советы. Разобрался — нашел в чем были у меня грабли. Конфиг от KRA работает.
Здравствуйте, Аноним, Вы писали:
А>В яном виде propagation не задан. То есть метод помечен как @Transactional и все. Мое понимание, что дефолтный propagation должен быть required.
Как сконфигурировано управление транзакциями (кусочек конфига, который tx:annotation-driven)?
А попробуйте hibernateTemplate.executeSQL(...)
В названии метода мог ошибиться, но он как-то так называется
А>Не подскажут ли уважаемые бест-практис для этой ситуации. То есть имеем Spring-приложение, которое персистит данные через Hibernate. В спринговом конфиге задан Hibernate transactionManager. Возможно ли использовать этот же Hibernate transactionManager для организации транзакций с использованием plain Jdbc? В референс мануале упоминается кратко, что такое возможно, если использовать DataSource из HibernateTransactionManager. Использую Jdbc через спринговый JDBCTemplate. Создаю JDBCTemplate с DataSource-м взятым из HibernateTransactionManager. Транзакция нифига не работает. Возникает такое ощущение, что она просто не коммитается в конце, потому как селекты работают нормально, а инсерты просто не попадают в базу....