Я создаю систему, где каждый запрос с клиентской стороны порождает несколько потоков на стороне сервера. Затем каждый поток использует один или несколько DAO (некоторые DAO могут использоваться более чем одним потоком в то время). Все DAO вводятся (@Autowired
) в мои классы потоков с помощью Spring. Каждый DAO получает также SessionFactory
.
Каким будет правильный способ управления сессиями Hibernate через эти множественные DAO, чтобы я не столкнулся с проблемами из-за многопоточной среды (например, несколько DAO из разных потоков пытались использовать один и тот же сеанс одновременно)?
Было бы достаточно, чтобы я указывал hibernate.current_session_context_class=thread
в конфигурации Hibernate, а затем каждый раз в DAO просто используйте SessionFactory.getCurrentSession()
для выполнения этой работы? Будет ли он правильно определять и создавать сеансы на поток при необходимости?