В чем разница между аннотированием EntityManager с помощью @Autowired и @PersistenceContext?Какой из них должен быть предпочтительным? - PullRequest
0 голосов
/ 28 мая 2019

Я разрабатываю приложение Spring-Boot, используя spring-boot-starter-data-jpa . Я не могу понять, какую аннотацию я должен использовать для введения EntityManager? @Autowired или @PersistenceContext

Я знаю, @PersistenceContext - аннотация JPA, тогда как @Autowired принадлежит Spring. Но внутренне, как они имеют значение? Я уже взглянул на этот . Но не смог понять точную причину.

1 Ответ

1 голос
/ 28 мая 2019

Источник данных является источником данных. Это может быть, например, база данных.

Один из вариантов, если вам нужно несколько источников данных, это определить их в файле persistence.xml. Здесь вы можете определить несколько и разделить их по имени.

@ PersistenceContext даст вам более детальную информацию о том, что вы хотите ввести. Здесь вы можете выбрать источник данных по определенному имени. Есть и другие варианты. https://docs.oracle.com/javaee/7/api/javax/persistence/PersistenceContext.html

Если вы используете @Autowire, вы просто вводите доступный контекст персистентности по имени бина. Если у вас есть 2 или более постоянных контекста, это может не сработать из-за неоднозначности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...