Hibernate транзакция вызывает принятие и последующий откат в MySQL - PullRequest
2 голосов
/ 15 декабря 2011

Я использую Hibernate 3.3.2 и mysql 5.0.77 (движок innodb).всякий раз, когда я выполняю какую-либо операцию выбора, обновления и т. д., это вызывает откат в конце mysql (по столбцу queryin com_rollback я вижу, что он увеличивается каждый раз).Я делаю эти операции в режиме гибернации.Hibernate не выдает никаких исключений и корректно завершает работу без ошибок. Когда я включил общий файл журнала в конце mysql, я увидел следующие шаги, выполняемые для каждой транзакции: set autocommit = 0 выполнить запрос (выбрать, вставить, обновить) commit rollback autocommit =1

Я не понимаю, почему происходит откат в конце mysql после коммита.нет ошибок в журнале приложений, а также в журнале MySQL.:. (

1 Ответ

0 голосов
/ 16 декабря 2011

Проверьте режим спящего режима или тому подобное.Посмотрите, что я написал здесь: миграция из HibernateTransactionManager в JpaTransactionManager

Обратите внимание, что я говорил о пружине @Transactionnal (read-only = true). Он не только устанавливает режим очистки никогда.http://www.codeinstructions.com/2009/04/read-only-transactions-with-spring-and.html

если транзакция помечена как доступная только для чтения, Spring установит режим очистки сеанса Hibernate на FLUSH_NEVER и установит транзакцию JDBC только для чтения.

Я не знаю, используете ли вы пружину в любом случае, но, возможно, это так.Если у вас сеанс гибернации в режиме никогда не завершаться, возможно, у вас есть такая проблема.


Если это не проблема, вы можете попытаться установить точку останова в вашем драйвере jdbc на:

Connection.setReadOnly(boolean)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...