Когда EntityManager получает новую сессию? - PullRequest
0 голосов
/ 29 мая 2019

Обычно очевидно, что EntityManager удерживает текущий сеанс, мы можем получить его, используя это:

Session session = entityManager.unwrap(Session.class);

Но мне любопытно, когда EntityManager получит новый.

@ редактировать

@PersistenceContext(type = PersistenceContextType.TRANSACTION, unitName = "context")
private EntityManager              em;

1 Ответ

0 голосов
/ 29 мая 2019

В соответствии с вашим кодом, я предполагаю, что вы используете Java EE или Spring.

@PersistenceContext(type = PersistenceContextType.TRANSACTION, unitName = "context")
private EntityManager em;

В этом случае EntityManager привязан к транзакции. Это означает, что вы получаете новый EntityManager с каждой новой транзакцией.

Session и EntityManager одинаковы и имеют одинаковый жизненный цикл. Это просто другое имя для того же. Сессия - сленг Hibernate и JPA EntityManager.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...