javax.persistence.EntityManager сам по себе не является потокобезопасным, однако Spring как-то (через прокси?) обеспечивает его потоковую безопасность. А вот если я получу org.hibernate.Session через unwrap, будет ли он потокобезопасен?
Здравствуйте, serjjj, Вы писали:
S>javax.persistence.EntityManager сам по себе не является потокобезопасным, однако Spring как-то (через прокси?) обеспечивает его потоковую безопасность. А вот если я получу org.hibernate.Session через unwrap, будет ли он потокобезопасен?
Скорее всего не будет. Выполни unwrap и посмотри тип объекта. Если это SessionImpl, а не прокси, то и ответ очевиден.
Re[2]: Spring, JPA, unwrap и потоковая безопасность
Здравствуйте, Blazkowicz, Вы писали:
B>Скорее всего не будет. Выполни unwrap и посмотри тип объекта. Если это SessionImpl, а не прокси, то и ответ очевиден.
Получилось org.hibernate.internal.SessionImpl. Однако в разных транзакциях (или потоках -- ХЗ) Session имеет разные id (согласно отладчику eclipse). Прокси каждый раз получает новый экземпляр EntityManager, следовательно Session не должны пересекаться между потоками?
Re[3]: Spring, JPA, unwrap и потоковая безопасность
Здравствуйте, serjjj, Вы писали:
S>Получилось org.hibernate.internal.SessionImpl. Однако в разных транзакциях (или потоках -- ХЗ) Session имеет разные id (согласно отладчику eclipse). Прокси каждый раз получает новый экземпляр EntityManager, следовательно Session не должны пересекаться между потоками?
Ну, если так, то да. Прокси отдест разным потокам разные сессии.