EntityManager» имеет значение null в JPA.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 EntityManager» имеет значение null в JPA.

Сообщение Anonymous »

persistence.xml

Код: Выделить всё



jdbc/file
false










Класс компонента

Код: Выделить всё

import dao.FileDAO;
import entity.Filee;
import jakarta.enterprise.context.SessionScoped;
import jakarta.inject.Named;
import jakarta.servlet.http.Part;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.nio.file.Files;
import java.util.List;

@Named
@SessionScoped
public class FileManager implements Serializable{

private Filee file;

private FileDAO fdao;
private List list;
private Part doc;

private String uploadTo="C:\\files\\";

public void upload() {
try {
InputStream input = doc.getInputStream();
File f = new File(uploadTo + doc.getSubmittedFileName());
Files.copy(input, f.toPath());

Filee newFile = new Filee();
newFile.setPath(f.getParent());
newFile.setName(f.getName());
newFile.setType(doc.getContentType());

getFdao().create(newFile);

} catch (IOException e) {
System.out.println( e.getMessage());
}
}
Абстрактное Дао

Код: Выделить всё

import java.io.Serializable;
import javax.persistence.EntityManager;
import java.util.List;

public abstract class AbstractFacade implements Serializable{
private Class entityClass;

public AbstractFacade(Class entityClass) {
this.entityClass = entityClass;
}

protected abstract EntityManager getEntityManager();

public void create(T entity) {
getEntityManager().persist(entity);
}

public void edit(T entity) {
getEntityManager().merge(entity);
}

public void remove(T entity) {
getEntityManager().remove(getEntityManager().merge(entity));
}

public T find(Object id) {
return getEntityManager().find(entityClass, id);
}

public List findAll() {
javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
return getEntityManager().createQuery(cq).getResultList();
}

public List findRange(int[] range) {
javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
javax.persistence.Query q = getEntityManager().createQuery(cq);
q.setMaxResults(range[1] - range[0] + 1);
q.setFirstResult(range[0]);
return q.getResultList();
}

public int count() {
javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
javax.persistence.criteria.Root  rt = cq.from(entityClass);
cq.select(getEntityManager().getCriteriaBuilder().count(rt));
javax.persistence.Query q = getEntityManager().createQuery(cq);
return ((Long) q.getSingleResult()).intValue();
}

}
FileDAO

Код: Выделить всё

import entity.Filee;
import jakarta.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class FileDAO extends AbstractFacade {

@PersistenceContext(unitName = "filePU")
private EntityManager em;

public FileDAO() {
super(Filee.class);
}

@Override
protected EntityManager getEntityManager() {
return em;
}
}

Я хочу использовать jpa в своем проекте Java jsf, но получаю сообщение об ошибке.
Когда я запускаю этот код, я получаю нулевую ошибкуentitymenager. как я могу устранить эту ошибку.
Сообщение об ошибке:
Невозможно вызвать «javax.persistence.EntityManager.getCriteriaBuilder()», поскольку возвращаемое значение «dao.AbstractFacade.getEntityManager()» равно нулю

Подробнее здесь: https://stackoverflow.com/questions/785 ... ull-in-jpa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»