EntityManager равен null при инжекции Stateless бина через Guice в Vaadin

279
20 декабря 2016, 23:59

При попытке заинжектить Stateless бин в Vaadin через Guice мой EntitiManager равен null. Можно ли как-нибудь заставить его работать без создания EntityManager через EntityMangaerFactory?

persistence.xml

  <?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">
    <persistence-unit name="studentDatabase" transaction-type="JTA">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <jta-data-source>jdbc/studentDatabase</jta-data-source>
        <class>com.dcpro.entities.Group</class>
        <class>com.dcpro.entities.Student</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/student_database"/>
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="root"/>
        </properties>
    </persistence-unit>
</persistence>

DaoModule.java

import com.google.inject.AbstractModule;
public class DAOModule extends AbstractModule {
    @Override
    protected void configure() {
    }
}

DaoService.java

@Stateless
public class DAOService {
@PersistenceUnit(unitName = "studentDatabase")
private EntityManager em;
@Inject
public DAOService() {
}
@SuppressWarnings("unchecked")
public <T> List<T> getEntities(Class<T> clazz) {
    Query query = em.createQuery("select e from " + clazz.getSimpleName() + " e");
    return query.getResultList();
}
}

AbstractView.java

public class AbstractView extends VerticalLayout implements View {
    public void setEntityClass(Class entityClass) {
        this.entityClass = entityClass;
    }
    Class entityClass;
    protected DAOService daoService;
    public AbstractView() {
        Injector injector = Guice.createInjector(new DAOModule());
        daoService = injector.getInstance(DAOService.class);
    }
    @Override
    public void enter(ViewChangeListener.ViewChangeEvent event) {
    }
}
-resources
    beans.xml
    META-INF
      persistence.xml
-webapp
    META-INF
      context.xml
      MANIFEST.MF
    WEB-INF
      web.xml
READ ALSO
Как создать 3d модель программно? [требует правки]

Как создать 3d модель программно? [требует правки]

Как можно создать 3d модельку (без разницы какого формата) программно? То есть какая структура у файлов 3d моделей?

270
Session для страниц

Session для страниц

Есть два сервлета А и BВ сервлете А, я начинаю сессию

451
Метод overlaps для Rectangle в LibGDX не работает

Метод overlaps для Rectangle в LibGDX не работает

Это строки из класса BlockИз самой логики игры :

347
JavaFX и зависимости программ

JavaFX и зависимости программ

Необходимо в Windows получить данные про зависимость программ на компьютере(дан пример пути к ним на linux(/var/lib/dpkg/avalible))После получения данных,...

388