@Autowired vs @PersistenceContext для EntityManager bean
В чем разница между
@Autowired
private EntityManager em;
и
@PersitenceContext
private EntityManager em;
Оба варианта работают в моем приложении, но могу ли я что-то сломать с помощью @Autowired аннотации?
Ответ 1
@PersistenceContext позволяет указать, какой блок персистентности вы хотите использовать. В вашем проекте может быть несколько источников данных, подключенных к различным БД, и @PersistenceContext позволяет вам указать, какой из них вы хотите использовать
он возвращает управляемый контейнером прокси, который получает и освобождает контекст присутствия от имени кода приложения
Ответ 3
@PersistenceContext представляет собой стандартную аннотацию JPA, предназначенную для этой конкретной цели. В то время как @Autowired используется для любой инъекции зависимостей в Spring. Использование @PersistenceContext дает вам больший контроль над вашим контекстом, поскольку он предоставляет вам возможность указывать необязательные элементы, например. имя, свойства