W moim przypadku aplikacji udało transakcji mam wybierać między:Ponowne użycie menedżera encji przez em.clear() lub utworzenie nowego menedżera encji?
- Korzystanie pojedynczą
EntityManager
i nazywającclear()
przed każdym nowym transakcji. UdostępnijEntityManager
przy użyciuThreadLocal
. - Tworzenie nowej
EntityManager
dla każdej transakcji.
Nie mam dużego doświadczenia w JPA. Moje pytanie brzmi, który z nich jest lepszy pod względem wydajności?
Podczas korzystania z pierwszego podejścia, czasami EntityManager nie jest w "sync", ponieważ "ThreadLocal" spowoduje utworzenie nowego EntityManager dla każdego wątku. Zostawiłem tylko jeden wybór: stworzyć nowy EntityManager dla każdej transakcji. – user2198754
James Sutherland zaleca ponowne użycie EntityManager podczas żądania. Głównym powodem jest udostępnianie kontekstu trwałości. Czy zgadzasz się z tym? http://www.coderanch.com/t/550734/ORM/databases/Practise-EntityManager – okwap