Получить EntityManager в обычном классе Java - PullRequest
1 голос
/ 02 апреля 2012

Как я могу получить менеджер сущностей в обычном классе Java?Я пробовал это с Injection, но безрезультатно, я всегда получаю исключение NullPointerException:

public class ClassName {

    @PersistenceContext(unitName = "myPU")
    public EntityManager em;

    @Resource
    UserTransaction utx;

...

Затем я пробовал это с отдельным классом, который предоставляет EntityManagerFactory, также безуспешно, исключение NullPointerException:

public class HibernateUtil {

    private static EntityManagerFactory entityManagerFactory = null;
    static {
        try {
            entityManagerFactory = Persistence.createEntityManagerFactory("myPU");
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }

    public static EntityManagerFactory getEntityManagerFactory() {
        return entityManagerFactory;
    }
}

Помощь приветствуется.

1 Ответ

2 голосов
/ 02 апреля 2012
public class ClassName {

    @PersistenceContext(unitName = "myPU")
    public EntityManager em;

    @Resource
    UserTransaction utx;

У вас нет здесь Dependency.Injection, если вы не работаете в Java EE-контейнере.Эти атрибуты нулевые.Вам нужно сначала их инициализировать (или добавить пружину или другой DI-контейнер).

...