В моих DAO
классах у меня есть ссылка на EntityManager
. Я хочу сделать доступ к EntityManager
потокобезопасным с помощью ThreadLocal
.
Пока мои попытки привели только к NullPointerException
с, и я не могу найти достойного примера.
Может ли кто-нибудь привести мне пример или указать правильное направление?
обновление : я попробовал предложение BalusC, но когда я одновременно получаю доступ к DAO через JSF и веб-сервис JAX-RS, я все еще получаю ошибки:
org.hibernate.exception.GenericJDBCException: could not load an entity
java.sql.SQLException: You can't operate on a closed Connection!!!
java.lang.NullPointerException
at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement
Я использую C3P0, поэтому я не знаю, почему закрытое соединение является проблемой.
update2 : последний комментарий BalusC, похоже, решил мою проблему: At least, you should not have a single instance of the DAO class shared throughout the application. Create a new one on every request.