Как убедиться, что Hibernate совершил транзакцию? - PullRequest
1 голос
/ 04 ноября 2010

У меня очень странное поведение, в моем java (весеннем) приложении есть случай, когда я сохраняю объект, используя hibernateTemplate, затем вызываю поток, который пытается получить этот объект снова, используя hibernateTemplate, если я запущен в режиме отладки все работает нормально, но когда это не так, большую часть времени я получаю исключение нулевого указателя, так как объект, возвращенный после второго вызова в потоке, возвращает нулевой объект,

Итак, суть в следующем: я думаю, что hibernate не зафиксировал транзакцию до запуска потока,

как убедиться, что объект сохранен в БД перед запуском потока,

С уважением,

Ответы [ 2 ]

1 голос
/ 04 ноября 2010

Выполнение flush () должно сделать работу.

0 голосов
/ 05 ноября 2010

Итак, суть в следующем: я думаю, что hibernate не зафиксировал транзакцию до запуска потока

Зачем Hibernate делать это? На самом деле, Hibernate не обеспечивает автоматическую обработку транзакций.

как убедиться, что объект сохранен в БД перед запуском потока,

Зафиксировать транзакцию, начатую в потоке # 1, перед запуском нового потока # 2.

Без более подробной информации о настройке Spring / Hibernate и обработке транзакций будет сложно получить более подробный ответ IMO.

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