Pessoal,
seguinte estou com um problema. Quando estou tentando cadastrar um dado ele está me apresentando o seguinte erro: org.hibernate.exception.ConstraintViolationException: could not insert:
acredito que é pq um valor que deveria estar não nulo, não estar…ele estar nulo. E esse valor é chave composta da tabela que estou tentando inserir.
segue o código.
public String salvar() throws Exception {
Session session = HibernateUtil.getSession();
getAniversarianteDao().setSession(session);
getUnidadeDao().setSession(session);
if (this.getAniversariante().getId() != null) {
setMsg("Alteração efetuada com sucesso!");
} else {
setMsg("Inclusão efetuada com sucesso!");
}
FormatoData formatador = new FormatoData();
aniversariante.setDataNascimento(Calendar.getInstance());
aniversariante.getDataNascimento().setTime(formatador.parseStringToDate(dtNascimento));
System.out.println(aniversariante.getUnidade().getNome());
getAniversarianteDao().saveOrUpdate(getAniversariante());
return listar();
}
antes de salvar ele tem todos os valores só não tem o valor da unidade…acho que está vindo da Jsp nulo.
JSP:
<div id="aniversariantes" style="width:580px;">
<s:form id="frmCadAniversariante" action="aniversariante_salvar.action"
onsubmit="return isCamposValidosAniversariante()"
theme="simple" name="frmAniversariante">
<s:hidden name="aniversariante.id"/>
<table border="0" cellspacing="6">
<tr style="height:20px">
<td align="Left">Nome:</td>
<td align="Left">
<s:textfield
size="70"
maxLength="100"
name="aniversariante.nome"
required="true"
id="nome"/>
</td>
</tr>
<tr style="height:20px;width:20px">
<td>Usuário:</td>
<td nowrap="nowrap" align="Left">
<s:textfield size="8"
maxLength="7"
name="aniversariante.idRede"
id="idRede"
onkeypress="return filtroCaracteres(event,'EePpCc0123456789')"/>
</td>
</tr>
<tr>
<td>Unidade:</td>
<td>
<s:select list="unidades"
listKey="id"
listValue="cgc+' - '+sigla"
headerKey=""
headerValue="Selecione"
name="aniversariante.unidade.id"
id="unidade" cssStyle="width:130px"/>
</td>
</tr>
<tr style="height:20px;width:20px">
<td>Data Nascimento:</td>
<td nowrap="nowrap" align="Left">
<s:textfield size="13"
maxLength="10"
name="dtNascimento"
id="dtNascimento"
onkeydown="formatar(this,'##/##/####')"
onkeypress="return filtroCaracteres(event,'[telefone removido]')"/>
</td>
</tr>
</table>
<br>
<table align="right">
<tr>
<td>
<s:submit
showLoadingText="false"
value="Salvar"
cssStyle="width: 100px;cursor: hand;"
cssClass="BTNADD"/>
</td>
<td>
<div>
<INPUT
type="button"
value="Cancelar"
Title="Cancelar"
onclick="window.location='<s:text name="aniversariante_listar.action"/>'"
class="BTNADD">
</div>
</td>
</tr>
</table>
</s:form>
</div>