Olá galera do GUJ boa noite.
Estou estudando o material da apostila disponivel no K19 sobre JPS2/JPA2.
No "trabalho" final é proposto desenvolver uma aplicação, no entanto, estou tendo problema de java.lang.NullPointerException
Já criei a tabela na braçalmente e a povoei pra ver se o erro deixava de existir mas, não mudou nada.
Bem o erro que dar é o seguinte abaixo
java.lang.NullPointerException
at model.repositories.TimeRepository.getLista(TimeRepository.java:37)
at managedbeans.TimeBean.getTimes(TimeBean.java:65)
Aqui está a minha classe TimeRepository
public class TimeRepository {
private EntityManager manager;
public TimeRepository(EntityManager manager) {
this.manager = manager;
}
public void adiciona(Time time){
this.manager.persist(time);
}
public Time procura(Long id){
return this.manager.find(Time.class, id);
}
public Time atualiza(Time time){
return this.manager.merge(time);
}
public List<Time> getLista(){
Query query = this.manager.createQuery("select t from Time t");
return query.getResultList();
}
public void remove(Long id){
Time time = this.procura(id);
Query query = this.manager.createQuery("select j from Jogador j");
List<Jogador> jogadores = query.getResultList();
for (Jogador jogador : jogadores) {
jogador.setTime(null);
}
this.manager.remove(time);
}
}
E aqui a TimeBean
@ManagedBean
public class TimeBean {
private Time time = new Time();
private List<Time> times;
public void adiciona(){
EntityManager manager = this.getManager();
TimeRepository repository = new TimeRepository(manager);
if(this.time.getId() == null){
repository.adiciona(this.time);
}else{
repository.atualiza(this.time);
}
this.time = new Time();
this.times = null;
}
public void preparaAlteracao(){
Map<String, String> params =
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
Long id = Long.parseLong(params.get("id"));
EntityManager manager = this.getManager();
TimeRepository repository = new TimeRepository(manager);
this.time = repository.procura(id);
}
public void remove(){
Map<String, String> params =
FacesContext.getCurrentInstance().getExternalContext().getInitParameterMap();
Long id = Long.parseLong(params.get("id"));
EntityManager manager = this.getManager();
TimeRepository repository = new TimeRepository(manager);
repository.remove(id);
this.times = null;
}
public List<Time> getTimes(){
if(this.times == null){
EntityManager manager = this.getManager();
TimeRepository repository = new TimeRepository(manager);
this.times = repository.getLista();
}
return this.times;
}
private EntityManager getManager(){
FacesContext fc = FacesContext.getCurrentInstance();
ExternalContext ec = fc.getExternalContext();
HttpServletRequest request = (HttpServletRequest) ec.getRequest();
return (EntityManager) request.getAttribute("EntityManager");
}
public Time getTime() {
return time;
}
public void setTime(Time time) {
this.time = time;
}
}
Alguém poderia me dar uma luz e dizer aonde que estou errando pra que fique dando java.lang.NullPointerException??
Desde de já obrigado pela ajuda de todos.
Abraço.