Spring, JPA, unwrap и потоковая безопасность
От: serjjj Россия  
Дата: 25.01.15 12:25
Оценка:
javax.persistence.EntityManager сам по себе не является потокобезопасным, однако Spring как-то (через прокси?) обеспечивает его потоковую безопасность. А вот если я получу org.hibernate.Session через unwrap, будет ли он потокобезопасен?
Re: Spring, JPA, unwrap и потоковая безопасность
От: Blazkowicz Россия  
Дата: 25.01.15 13:11
Оценка:
Здравствуйте, serjjj, Вы писали:

S>javax.persistence.EntityManager сам по себе не является потокобезопасным, однако Spring как-то (через прокси?) обеспечивает его потоковую безопасность. А вот если я получу org.hibernate.Session через unwrap, будет ли он потокобезопасен?

Скорее всего не будет. Выполни unwrap и посмотри тип объекта. Если это SessionImpl, а не прокси, то и ответ очевиден.
Re[2]: Spring, JPA, unwrap и потоковая безопасность
От: serjjj Россия  
Дата: 25.01.15 14:08
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Скорее всего не будет. Выполни unwrap и посмотри тип объекта. Если это SessionImpl, а не прокси, то и ответ очевиден.


Получилось org.hibernate.internal.SessionImpl. Однако в разных транзакциях (или потоках -- ХЗ) Session имеет разные id (согласно отладчику eclipse). Прокси каждый раз получает новый экземпляр EntityManager, следовательно Session не должны пересекаться между потоками?
Re[3]: Spring, JPA, unwrap и потоковая безопасность
От: Blazkowicz Россия  
Дата: 26.01.15 07:31
Оценка:
Здравствуйте, serjjj, Вы писали:

S>Получилось org.hibernate.internal.SessionImpl. Однако в разных транзакциях (или потоках -- ХЗ) Session имеет разные id (согласно отладчику eclipse). Прокси каждый раз получает новый экземпляр EntityManager, следовательно Session не должны пересекаться между потоками?

Ну, если так, то да. Прокси отдест разным потокам разные сессии.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.