ссылка

внедрить менеджер сущностей (или его фабрику) в управляемый бин jsf, используя@PersistenceContext (или же@PersistenceUnit)?

Я попробовал, но ничего, я получаю исключение NullPointerException.

Ответы на вопрос(1)

Решение Вопроса

Да, это возможно. Это синтаксис.

@PersistenceContext
EntityManager em;

В вашем проекте должен быть файл persistence.xml. Кстати: я бегу Glassfish 3.

После этого вы можете использовать такие методы, как em.createNamedQuery.

Также помните, что внедрение происходит после конструктора, поэтому, если вы пытаетесь выполнять функции базы данных в конструкторе, это не сработает. Вам нужно будет добавить аннотацию @PostConstruct к методу. Вероятно, это ваша проблема.

 Alf19 янв. 2011 г., 00:11
Хорошо спасибо. Я использовал их в конструкторе
 DavidS29 янв. 2015 г., 19:56
Обратите внимание, что EntityManager не будет использовать транзакции, управляемые контейнером (CMT), если внедрен в управляемый компонент JSF. До Java EE 7 только EJB-компоненты использовали транзакции, управляемые контейнером, а Java EE 7 расширяла CMT только для bean-компонентов CDI, но не для устаревших JSF-управляемых bean-компонентов. Другими словами, если есть ошибка, контейнер не будет откатывать транзакцию: вам придется управлять этим самостоятельно.Ссылка а такжессылка.
 DavidS06 июл. 2015 г., 18:38
Пять месяцев спустя, и я не уверен, что мой предыдущий комментарий верен. Я никогда не проверял это: я просто сделал вывод из прочитанного. : - \ Внедрение менеджера сущностей в управляемы

Ваш ответ на вопрос