Bom dia Pessoal!
Outro dia postei uma dúvida quanto a utilizar Get/Set de atributos do tipo Objeto.
package bean;
import bean.Titulacao;
public class Professor {
private int pfr_id;
private String pfr_matricula;
private String pfr_nome;
private Titulacao pfr_titulacao;
private double pfr_qtdHoras;
public int getPfr_id() {
return pfr_id;
}
public void setPfr_id(int pfr_id) {
this.pfr_id = pfr_id;
}
public String getPfr_matricula() {
return pfr_matricula;
}
public void setPfr_matricula(String pfr_matricula) {
this.pfr_matricula = pfr_matricula;
}
public String getPfr_nome() {
return pfr_nome;
}
public void setPfr_nome(String pfr_nome) {
this.pfr_nome = pfr_nome;
}
public double getPfr_qtdHoras() {
return pfr_qtdHoras;
}
public void setPfr_qtdHoras(double pfr_qtdHoras) {
this.pfr_qtdHoras = pfr_qtdHoras;
}
public Titulacao getPfr_titulacao() {
return pfr_titulacao;
}
public void setPfr_titulacao(Titulacao pfr_titulacao) {
this.pfr_titulacao = pfr_titulacao;
}
}
Depois de algumas pesquisas descobri que poderia ser da forma abaixo:
1. int titId = Integer.parseInt(request.getParameter("titId")); --> request campo Titulacao do FORM.HTML
2. Titulacao titulacao = titulacaoDao.getTitulacao(tit); ------> retorna Objeto Titulação de acordo com o titID
3. professor.setPfr_titulacao(titulacao); ----------------------> executa o método Set
Dessa forma funciona corretamente, mas me sugeriram também a utilização do linkeInvokation o qual achei bem mais prático. Ocorre que ao inserir um novo registro ele retornar o erro abaixo:
java.lang.NullPointerException
O erro acontece no momento do SET:
if (acao.equals("atualizar")) {
String matricula = request.getParameter("matricula");
String nome = request.getParameter("nome");
double qtdHoras = Double.parseDouble(request.getParameter("qtdHoras"));
int tit = Integer.parseInt(request.getParameter("tit"));
if(id==0){
professor = new Professor();
}else{
professor = professorDao.getProfessor(id);
}
professor.setPfr_matricula(matricula);
professor.setPfr_nome(nome);
// titulacao = titulacaoDao.getTitulacao(tit);
// professor.setPfr_titulacao(titulacao);
professor.getPfr_titulacao().setTtl_id(tit); ----------> nesse momento ocorre o erro, e somente na inserção.
professor.setPfr_qtdHoras(qtdHoras);
if(id==0){
professorDao.Inserir(professor);
}else{
professorDao.Alterar(professor);
}
}
Dei carga de alguns registros MANUALMENTE e fiz algumas alterações e funcionou corretamente, porém ao inserir um registro NOVO, a rotina apresenta erro. O trecho do código acima é utilizado tanto para Alteração como para Inserção T de registros.