I am building a system, where each request from a client side spawns multiple threads on server side. Each thread then is using one or more DAOs (some DAOs can be used by more than one thread at the time). All DAOs are injected (@Autowired
) to my thread classes by Spring. Each DAO receives SessionFactory
injected as well.
What would be proper way of managing Hibernate sessions across these multiple DAOs so I would not run into problems because of multithreaded environment (e.g. few DAOs from different threads are trying to use the same session at the same time)?
Would be enough that I specify hibernate.current_session_context_class=thread
in Hibernate configuration and then everytime in DAO simply use SessionFactory.getCurrentSession()
to do the work? Would it properly detect and create sessions per thread as needed?