2013-07-06 3 views
4

Я много искал, чтобы определить, как пружина JPA закрывает соединение EntityManager после ее открытия. Я использовал @PersistenceContext для ввода Transactional EntityManager в мои DAO, и это подразумевает, что весна позаботится о создании и закрытии EntityManager для меня. Однако в моей предыдущей реализации я использовал для создания и закрытия EntityManager из DAO, который теперь заменяется весной. Может кто-нибудь, пожалуйста, помогите мне понять, действительно ли закрытие EntityManager Connection после завершения транзакции или ее сохранение до тех пор, пока приложение не будет утилизировано?закрытие EntityManager by Spring

FYI, я не закрываю EntityManager моего собственного, предполагая, что весна закроет его для меня, как только сделка закончится. Я боюсь, если это не приведет к утечке ресурсов в некоторый момент времени.

С уважением Rajib

+0

Эй @ Раджиб. Я действительно сталкиваюсь с состоянием, о котором вы упоминаете. Я не закрывал «EntityManager» и не позволял 'spring' делать это с помощью' @ Transactional'. Кажется (после откладывания некоторых «свалок кучи»), чтобы вызвать утечку памяти. См. Мой вопрос здесь [http://stackoverflow.com/questions/21696181/best-practice-for-open-get-hibernate-session-in-spring-4-hibernate-4-3-1-final?noredirect=1 # comment32812798_21696181]. Вы нашли какую-то «лучшую практику» для обработки «EntityManager» с «Spring» – oak

ответ

2

Вы можете найти this link полезным. Кроме того, из того, что я понимаю, при использовании аннотации @PersistenceContext по умолчанию диспетчер объектов привязывается только к длительности метода, аннотированного с помощью @Transactional, и автоматически закрывается в конце метода.

Смежные вопросы