CDI - это стандартная технология для внедрения зависимостей в Java EE, которая делает удобным удобным для создания производителя метода для EntityManager
, тогда вы можетепросто добавьте в свои bean-компоненты.
Аннотация @PersistenceContext
содержит несколько настраиваемых элементов (например, name
), и вы, возможно, не захотите дублировать ихнапример, во всем приложении.
Инъекция CDI особенно полезна, когда у вас есть несколько единиц персистентности.Тогда вы можете воспользоваться преимуществами CDI для инъекций:
public class Databases {
@Produces @Users
@PersistenceContext(unitName="UserData")
EntityManager userEntityManager;
@Produces @Documents
@PersistenceContext(unitName="DocumentData")
EntityManager docDatabaseEntityManager;
}
@Inject @Users
EntityManager em;
@Inject @Documents
EntityManager em;