0
I have a web form that saves data in Mysql, but is returning an error could not execute statement
; Column 'bairro' cannot be null
. The error says that the 'neighborhood' field cannot be null, but I am filling in all fields. I did a test, I changed the field 'column' to nullable = true, I filled the field, and in the database is saving NOT NULL, IE, is not passing the filled value.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:jsf="http://xmlns.jcp.org/jsf" lang="pt-br">
<ui:composition template="layout.xhtml">
<ui:define name="conteudo">
<h1>Novo aluno</h1>
<div id="infoMensager">(mensagem de sucesso ou erro)</div>
<br />
<form jsf:id="form">
<!-- borda que delimita campos / ctr + f => substitui-->
<fieldset>
<legend>Dados pessoais</legend>
<label for="nome">Nome:</label> <br />
<input type="text" jsf:value="#{alunoBean.aluno.nome}" id="nome" /> <br />
<label for="sexo">Sexo:</label><br />
<select jsf:value="#{alunoBean.aluno.sexo}" id="sexo" size="0">
<f:selectItems value="#{dataBean.sexos}"/>
</select><br />
<label for="cpf">CPF:</label> <br />
<input type="text" jsf:value="#{alunoBean.aluno.cpf}" id="cpf" /> <br />
<label for="rg">RG:</label> <br />
<input type="text" jsf:value="#{alunoBean.aluno.rg}" id="rg" /> <br />
<label for="dataNascimento">Data de Nascimento:</label> <br />
<input type="date" jsf:value="#{alunoBean.aluno.dataNascimento}" id="dataNascimento">
<f:convertDateTime type="localDate" pattern="yyyy-MM-dd"/>
</input>
</fieldset>
<br />
<fieldset>
<legend>Situação</legend>
<label for="situacao">Situação:</label><br />
<select jsf:value="#{alunoBean.aluno.situacao}" id="situacao" size="0">
<f:selectItems value="#{dataBean.situacoes}"/>
</select>
</fieldset>
<br />
<fieldset>
<legend>Endereço</legend>
<label for="rua">Rua:</label> <br />
<input type="text" jsf:value="#{alunoBean.aluno.endereco.rua}" id="rua" /> <br />
<label for="numero">Número:</label> <br />
<input type="text" jsf:value="#{alunoBean.aluno.endereco.numero}" id="numero" /> <br />
<label for="complemento">Complemento:</label> <br />
<input type="text" jsf:value="#{alunoBean.aluno.endereco.complemento}" id="complemento" /> <br />
<label for="cidade">Cidade:</label> <br />
<input type="text" jsf:value="#{alunoBean.aluno.endereco.cidade}" id="cidade" /> <br />
<label for="estado">Estado:</label><br />
<select jsf:value="#{alunoBean.aluno.endereco.estado.sigla}" id="estado" size="0">
<f:selectItems value="#{dataBean.estados}" var="e" itemLabel="#{e.nome}" itemValue="#{e.sigla}"/>
</select><br />
<label for="cep">CEP:</label> <br />
<input type="text" jsf:value="#{alunoBean.aluno.endereco.cep}" id="cep" /><br />
<label for="bairro">Bairro:</label><br/>
<input type="text" jsf:valeu="#{alunoBean.aluno.endereco.bairro}" id="bairro"/>
</fieldset>
<br />
<fieldset>
<legend>Contato</legend>
<label for="email">E-mail:</label><br />
<input type="text" jsf:value="#{alunoBean.aluno.contato.email}" id="email" /><br />
<label for="telefoneCelularDDD">Telefone celular:</label> <br />
<input type="tel" jsf:value="#{alunoBean.aluno.contato.dddCelular}" id="telefoneCelularDDD" /> 
<input type="tel" jsf:value="#{alunoBean.aluno.contato.numeroCelular}" id="telefoneCelularNumero" /><br/>
<label for="telefoneFixoDDD">Telefone fixo:</label> <br />
<input type="tel" jsf:value="#{alunoBean.aluno.contato.dddfixo}" id="telefoneFixoDDD" /> 
<input type="tel" jsf:value="#{alunoBean.aluno.contato.numeroFixo}" id="telefoneFixoNumero" />
</fieldset>
<br />
<input type="submit" value="Gravar" jsf:action="#{alunoBean.gravar}"/> 
<input type="button" value="Relatório de acesso" />
</form>
</ui:define>
</ui:composition>
</html>
package br.com.jopaulo.sistemacad.domain.aluno;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@Embeddable
public class Endereco implements Serializable {
@Column(name = "rua", nullable = false, length = 128)
private String rua;
@Column(name = "numero", nullable = false, length = 6)
private Integer numero;
@Column(name = "complemento", nullable = true, length = 64)
private String complemento;
@Column(name = "cidade", nullable = false, length = 64)
private String cidade;
@Column(name = "cep", nullable = false, length = 8)
private Integer cep;
@Column(name = "bairro", nullable = false, length = 32)
private String bairro;
@ManyToOne
@JoinColumn(name = "estado_id", nullable = false)
private Estado estado = new Estado();
public String getRua() {
return rua;
}
public void setRua(String rua) {
this.rua = rua;
}
public Integer getNumero() {
return numero;
}
public void setNumero(Integer numero) {
this.numero = numero;
}
public String getComplemento() {
return complemento;
}
public void setComplemento(String complemento) {
this.complemento = complemento;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public Integer getCep() {
return cep;
}
public void setCep(Integer cep) {
this.cep = cep;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public Estado getEstado() {
return estado;
}
public void setEstado(Estado estado) {
this.estado = estado;
}
@Override
public String toString() {
return "Endereco [rua=" + rua + ", numero=" + numero + ", complemento=" + complemento + ", cidade=" + cidade
+ ", cep=" + cep + ", bairro=" + bairro + ", estado=" + estado + ", getRua()=" + getRua()
+ ", getNumero()=" + getNumero() + ", getComplemento()=" + getComplemento() + ", getCidade()="
+ getCidade() + ", getCep()=" + getCep() + ", getBairro()=" + getBairro() + ", getEstado()="
+ getEstado() + ", hashCode()=" + hashCode() + ", getClass()=" + getClass() + ", toString()="
+ super.toString() + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((bairro == null) ? 0 : bairro.hashCode());
result = prime * result + ((cep == null) ? 0 : cep.hashCode());
result = prime * result + ((cidade == null) ? 0 : cidade.hashCode());
result = prime * result + ((complemento == null) ? 0 : complemento.hashCode());
result = prime * result + ((estado == null) ? 0 : estado.hashCode());
result = prime * result + ((numero == null) ? 0 : numero.hashCode());
result = prime * result + ((rua == null) ? 0 : rua.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Endereco other = (Endereco) obj;
if (bairro == null) {
if (other.bairro != null)
return false;
} else if (!bairro.equals(other.bairro))
return false;
if (cep == null) {
if (other.cep != null)
return false;
} else if (!cep.equals(other.cep))
return false;
if (cidade == null) {
if (other.cidade != null)
return false;
} else if (!cidade.equals(other.cidade))
return false;
if (complemento == null) {
if (other.complemento != null)
return false;
} else if (!complemento.equals(other.complemento))
return false;
if (estado == null) {
if (other.estado != null)
return false;
} else if (!estado.equals(other.estado))
return false;
if (numero == null) {
if (other.numero != null)
return false;
} else if (!numero.equals(other.numero))
return false;
if (rua == null) {
if (other.rua != null)
return false;
} else if (!rua.equals(other.rua))
return false;
return true;
}
}
Very well noted, thank you.
– João Paulo da Mata Mendes