История изменений
Исправление memnek, (текущая версия) :
вроде переделал, использую JPA с поставщиком в виде Hibernate.
Теперь вылезли проблемы в виде NullPointerException при работе EntityManager'a. У меня есть сущность (почти не изменилась), класс TaskFacade:
@Stateless
public class TaskFacade {
@PersistenceContext(unitName = "TaskPU")
private EntityManager em; // это поле всегда null
public List<Task> findAll() {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
cq.select(cq.from(Task.class));
return em.createQuery(cq).getResultList();
}
}
@ManagedBean(name = "taskController")
@SessionScoped
public class TaskController {
private Task current;
@EJB
private TaskFacadeLocal ejbFacade;
public List<Task> getTasks() {
return ejbFacade.findAll();
}
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="TaskPU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>jgantt.jpa.entities.Task</class>
<properties>
<property name="hibernate.connection.url" value="jdbc:sqlite:/path/to/db.db"/>
<property name="hibernate.connection.driver_class" value="org.sqlite.JDBC"/>
<property name="hibernate.dialect" value="jgantt.jpa.util.SQLiteDialect"/>
<property name="hibernate.connection.username" value=""/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
Читал, что надо модифицировать класс TaskFacade, чтобы он стал управляемым (managed) или настроить правильно БД. Однако что-то ничего не вышло, либо я делал что-то не то. Не подскажешь, как решить эту проблему?
Исходная версия memnek, :
вроде переделал, использую JPA с поставщиком в виде Hibernate.
Теперь вылезли проблемы в виде NullPointerException при работе EntityManager'a. У меня есть сущность (почти не изменилась), класс TaskFacade:
@Stateless
public class TaskFacade {
@PersistenceContext(unitName = "TaskPU")
private EntityManager em;
public List<Task> findAll() {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
cq.select(cq.from(Task.class));
return em.createQuery(cq).getResultList();
}
}
@ManagedBean(name = "taskController")
@SessionScoped
public class TaskController {
private Task current;
@EJB
private TaskFacadeLocal ejbFacade;
public List<Task> getTasks() {
return ejbFacade.findAll();
}
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="TaskPU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>jgantt.jpa.entities.Task</class>
<properties>
<property name="hibernate.connection.url" value="jdbc:sqlite:/path/to/db.db"/>
<property name="hibernate.connection.driver_class" value="org.sqlite.JDBC"/>
<property name="hibernate.dialect" value="jgantt.jpa.util.SQLiteDialect"/>
<property name="hibernate.connection.username" value=""/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>