EntityManager مدیریت Entity های cache شده از سمت دیتابیس را بعهده دارد و بعبارت دیگر کامپوننت اصلی در JPA است. EntityManagerFactory کامپوننتی است که سازنده EntityManager است و برای ما بر اساس تنظیمات یک persistence-unit اشیاء EntityManager میسازد. persistence-unit مشخص کننده اطلاعات لازم برای اتصال به یک دیتابیس و تنطیمات مربوط به Mapping های آن است.
انوتیشن PersistenceContext فقط در صورتی که transaction-type ما JTA باشد استفاده می شود و بصورت اتوماتیک با استفاده از EntityManagerFactory یک EntityManager برای ما می سازد و در اختیار قرار می دهد.
@PersistenceContext(unitName = "Tutorial")
private EntityManager entityManager;
کد بالا یک EntityManager بر پایه تنظیمات persistence-unit با نام Tutorial برای ما میسازد.
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<!-- Tutorial "unit" -->
<persistence-unit name="Tutorial" transaction-type="JTA">
<jta-data-source>myJtaDataSource</jta-data-source>
<non-jta-data-source>myNonJtaDataSource</non-jta-data-source>
</persistence-unit>
</persistence>