Това е определено застой ситуация. Това е свързано повече с грешка в MySQL, отколкото с проблем с хибернация с вашите класове. Първо нека прегледаме определението за застой :
Вижте тази страница за повече информация:http://en.wikipedia.org/wiki/Deadlock
Как се справяте с тази ситуация. Е, трябва да прочетете следната статия:Застой в InnoDB . Той съдържа повечето от информацията, от която се нуждаете. Тази статия обяснява подробно как да проследите и да се справите със застой, което трябва да прочетете.
По същество ще трябва да направите следните стъпки въз основа на информацията по-горе:
- Създайте MySQL Trace:Проследете всички заявки, изпълнявани на MySQL сървъра.
- Вземете информация за проследяване на застой
- Свържете проследяването на мъртвото заключване и проследяването на MySQL помежду си, за да определите причината за мъртвото заключване.
Статията за InnoDB също има списък с лекарства, така че няма да ги повтарям тук. Само имайте предвид заблужденията не е фатална грешка, просто трябва да се справите с нея. Така че може би хванете изключението и опитайте отново транзакцията. Също така се уверете, че вашите заявки, генерирани от Hibernate, са оптимални в смисъл, че използват индекси където могат и т.н. Друго нещо, което можете да опитате, е пакетиране транзакцията в режим на хибернация и се изпълнява партидно .
Сигурен съм, че с двете връзки по-горе ще можете да се справите с проблема и за вас ще бъде ценен опит да се справите сами. Ако намерите конкретен елемент, имате проблеми с това, добавете го към въпроса и нека да се справим с него.