Я изучаю JPA и задаю один вопрос:
В каких ситуациях нам нужно более одного EntityManager
в нашем приложении?
Две ситуации, о которых я знаю, следующие:
-
Когда наше приложение является многопоточным приложением, и для нескольких потоков требуется транзакция JPA, поскольку
EntityManager
не является потокобезопасной, и нам нужен одинEntityManager
для каждого потока. -
Если для любого потока требуется несколько параллельных транзакций, нам нужно больше одного
EntityManager
в этом потоке, потому что междуEntityManager
иEntityTransaction
существует взаимно однозначное отношение.
Q1. Существуют ли другие ситуации, когда нам нужно больше одного EntityManager
?
Q2. Понимаю, должно быть только одно EntityManagerFactory
за группу перманентности. Я прав? Если нет, то каковы эти ситуации, когда нам нужно несколько EntityManagerFactory
для каждой единицы существования?