2016-05-24 4 views
0

Я читаю главу JAVA EE7 Persistence, и все, что я вижу, это то, что вам нужно создать EntityManagerFactory для создания EntityManager.В чем разница между EntityManagerFactory и EntityManager

Все вызовы методов, как представляется, выполняются EntityManager, поэтому почему необходимо создать EntityManagerFactory? Что именно он делает?

Я пробовал найти ответ здесь и в Интернете, но безрезультатно.

Спасибо.

+0

См. Http://stackoverflow.com/questions/1310087/injecting-entitymanager-vs-entitymanagerfactory. В основном, когда EntityManager не вводится контейнером, вам нужна фабрика для его создания. – Leo

ответ

0

Ознакомьтесь с шаблоном проектирования завода в целом. Ответ связан в комментарии Лео (https://stackoverflow.com/a/1310415/2762475) и объясняет некоторые документы. Это хорошее место для начала. Инъекционная инъекция в целом может быть чрезвычайно полезна, но, возможно, вне вашего использования для EntityManager.

IMO, ключевое значение для понимания здесь - цель завода: как потребитель продукта (в данном случае, менеджер) все, что вам нужно сделать, это заказать один с завода, и они дадут вам правый. Сравните это с большой кучей продуктов, которые вы можете получить от волей-неволей. Это прекрасно, если вы единственный, кто схватывает, но как только начнется конкуренция за ресурсы, вы не сможете гарантировать, что вы получите точный объект, который вам нужен, даже если вы знаете, как он выглядит.

Смежные вопросы