Bom dia pessoal,
Estou quebrando a cabeça há quase uma semana e sinceramente não sei mais o que faço, simplesmente a aplicação que comecei parou de salvar no BD. Estava salvando, quando fui colocar uma herança no meio parou, ae não consegui resolver e decidi começar o projeto de novo(estava no começo mesmo), mas mesmo sem herança nem nada, tambem nao salva no BD, agora ateh aparece que tem coisa na tabela, mas quando eu abro as linhas estão todas sem dados nenhum.
Ja vi e revi tudo, ja testei em dois computadores e nada, esta tudo com annotations certinho, mapeado no xml, etc.
Por favor, alguem pode me ajudar?
PessoaFisica
[code]package camisas.modelo;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import javax.persistence.TemporalType;
@Entity
@Table(name = “pessoa_fisica”)
public class PessoaFisica implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name = "nome")
private String nome;
@Column(name = "cpf")
private String cpf;
@Column(name = "sexo")
private String sexo;
/*@Temporal(TemporalType.DATE)
@Column(name="data_nascimento")
private Date dataNascimento;*/
@Column(name = "data_nascimento")
private String dataNascimento;
@Column(name = "tel_residencial")
private String telResidencial;
@Column(name = "tel_comercial")
private String telComercial;
@Column(name = "celular")
private String celular;
@Column(name = "email")
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCelular() {
return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(String dataNascimento) {
this.dataNascimento = dataNascimento;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public String getTelComercial() {
return telComercial;
}
public void setTelComercial(String telComercial) {
this.telComercial = telComercial;
}
public String getTelResidencial() {
return telResidencial;
}
public void setTelResidencial(String telResidencial) {
this.telResidencial = telResidencial;
}
}
[/code]
Action:
[code]package camisas.controle.actions;
import camisas.controle.forms.UsuarioForm;
import camisas.dao.GenericDAO;
import camisas.modelo.PessoaFisica;
import camisas.util.HibernateUtil;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class ManterUsuarioAction extends org.apache.struts.action.Action {
private String retorno;
/**
* This is the action called from the Struts framework.
* @param mapping The ActionMapping used to select this instance.
* @param form The optional ActionForm bean for this request.
* @param request The HTTP Request we are processing.
* @param response The HTTP Response we are processing.
* @throws java.lang.Exception
* @return
*/
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String acao = request.getParameter("acao");
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
UsuarioForm usuarioForm = (UsuarioForm) form;
PessoaFisica pf = new PessoaFisica();
pf.setNome(usuarioForm.getNome());
pf.setCpf(usuarioForm.getCpf());
pf.setSexo(usuarioForm.getSexo());
pf.setDataNascimento(usuarioForm.getDataNascimento());
pf.setTelResidencial(usuarioForm.getTelResidencial());
pf.setTelComercial(usuarioForm.getTelComercial());
pf.setCelular(usuarioForm.getCelular());
pf.setEmail(usuarioForm.getEmail());
/* pf.setNome("nome");
pf.setCpf("111111111111");
pf.setSexo("M");
pf.setDataNascimento("22222222222");
pf.setTelResidencial("333333333333");
pf.setTelComercial("44444444444444444");
pf.setCelular("555555555555");
pf.setEmail("email");*/
GenericDAO dao = new GenericDAO(session, PessoaFisica.class);
if (acao.equals("incluir"))
{
try {
dao.salvar(pf);
}
catch (Exception e) {
e.printStackTrace();
}
}
return mapping.findForward(retorno);
}
}
[/code]
GenericDAO
[code]package camisas.dao;
import camisas.util.HibernateUtil;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
public class GenericDAO {
private Class persistentClass;
protected Session session;
protected SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
public GenericDAO(Session session, Class persistentClass) {
this.session = session;
this.persistentClass = persistentClass;
}
public void salvar(X x) throws HibernateException {
try
{
this.session.save(x);
}
catch (HibernateException e)
{
System.err.println("Erro ao salvar na base de dados: " + e);
e.printStackTrace();
}
}
public void atualizar(X x) throws HibernateException {
try
{
this.session.update(x);
}
catch (HibernateException e)
{
e.printStackTrace();
}
}
public void excluir(X x) throws HibernateException {
try
{
this.session.delete(x);
}
catch (HibernateException e)
{
e.printStackTrace();
}
}
@SuppressWarnings("unchecked")
public X carregar(int codigo) {
return (X) this.session.load(persistentClass, codigo);
}
@SuppressWarnings("unchecked")
public List<X> listar() {
return this.session.createCriteria(persistentClass).list();
}
public X carregarPeloId(int id) {
Criteria c = session.createCriteria(persistentClass);
c.add(Restrictions.eq("id", id));
return (X) c.uniqueResult();
}
}
[/code]
hibernate config
[code]<?xml version="1.0" encoding="UTF-8"?>
org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/camisas root [/code]jsp:
[code]<%@page contentType=“text/html” pageEncoding=“ISO-8859-1”%>
<%@ taglib uri=“http://struts.apache.org/tags-bean” prefix=“bean” %>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
//adiciona mascara de cep
function MascaraCep(cep){
if(mascaraInteiro(cep)==false){
event.returnValue = false;
}
return formataCampo(cep, '00.000-000', event);
}
//adiciona mascara de data
function MascaraData(data){
if(mascaraInteiro(data)==false){
event.returnValue = false;
}
return formataCampo(data, '00/00/0000', event);
}
//adiciona mascara ao telefone
function MascaraTelefone(tel){
if(mascaraInteiro(tel)==false){
event.returnValue = false;
}
return formataCampo(tel, '(00) 0000-0000', event);
}
//adiciona mascara ao CPF
function MascaraCPF(cpf){
if(mascaraInteiro(cpf)==false){
event.returnValue = false;
}
return formataCampo(cpf, '000.000.000-00', event);
}
//valida numero inteiro com mascara
function mascaraInteiro(){
if (event.keyCode < 48 || event.keyCode > 57){
event.returnValue = false;
return false;
}
return true;
}
//formata de forma generica os campos
function formataCampo(campo, Mascara, evento){
var boleanoMascara;
var Digitato = evento.keyCode;
exp = /\-|\.|\/|\(|\)| /g
campoSoNumeros = campo.value.toString().replace( exp, "" );
var posicaoCampo = 0;
var NovoValorCampo="";
var TamanhoMascara = campoSoNumeros.length;;
if (Digitato != 8){ // backspace
for(i=0; i<= TamanhoMascara; i++) {
boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
|| (Mascara.charAt(i) == "/"))
boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(")
|| (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "))
if (boleanoMascara) {
NovoValorCampo += Mascara.charAt(i);
TamanhoMascara++;
}else {
NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
posicaoCampo++;
}
}
campo.value = NovoValorCampo;
return true;
}
else {
return true;
}
}
//valida campos vazios no formulario
function ValidarForm()
{
d = document.UsuarioForm;
//validar nome
if (d.nome.value == "")
{
alert("Por favor, digite o seu nome!");
d.nome.focus();
return false;
}
if (d.email.value == "")
{
alert("Por favor, informe seu e-mail!");
d.email.focus();
return false;
}
//validar login
if (d.login.value == "")
{
alert("Por favor, informe o seu login!");
d.login.focus();
return false;
}
if (d.senha.value == "" || d.senha2.value == "")
{
alert("Por favor, informe sua senha!");
d.senha.value="";
d.senha2.value="";
d.senha.focus();
return false;
}
//validar as duas senhas
if (d.senha.value != d.senha2.value)
{
alert("Senhas não conferem. Por favor, digite novamente!");
d.senha.value="";
d.senha2.value="";
d.senha.focus();
return false;
}
}
//valida telefone
function ValidaTelefone(tel){
exp = /\(\d{2}\)\ \d{4}\-\d{4}/
if(!exp.test(tel.value))
{
alert('Telefone inválido!!');
tel.value="";
tel.focus();
return false;
}
}
//valida CEP
function ValidaCep(cep){
exp = /\d{2}\.\d{3}\-\d{3}/
if(!exp.test(cep.value))
{
alert('CEP inválido!');
cep.value="";
cep.focus();
return false;
}
}
//valida data
function ValidaData(){
dia = (document.forms[0].dataNascimento.value.substring(0,2));
mes = (document.forms[0].dataNascimento.value.substring(3,5));
ano = (document.forms[0].dataNascimento.value.substring(6,10));
situacao = "";
// verifica o dia valido para cada mes
if ((dia < 01)||(dia < 01 || dia > 30) && ( mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) {
situacao = "falsa";
}
// verifica se o mes e valido
if (mes < 01 || mes > 12 ) {
situacao = "falsa";
}
// verifica se e ano bissexto
if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) {
situacao = "falsa";
}
if (document.forms[0].dataNascimento.value == "") {
situacao = "falsa";
}
if (situacao == "falsa") {
alert("Data inválida!");
document.forms[0].dataNascimento.value="";
document.forms[0].dataNascimento.focus();
}
}
//valida o CPF digitado
function ValidarCPF(Objcpf){
//var cpf = Objcpf.value;
var cpf = document.forms[0].cpf.value;
exp = /\.|\-/g
cpf = cpf.toString().replace( exp, "" );
var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
var soma1=0, soma2=0;
var vlr =11;
for(i=0;i<9;i++){
soma1+=eval(cpf.charAt(i)*(vlr-1));
soma2+=eval(cpf.charAt(i)*vlr);
vlr--;
}
soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
soma2=(((soma2+(2*soma1))*10)%11);
var digitoGerado=(soma1*10)+soma2;
if(digitoGerado!=digitoDigitado)
{
alert('CPF inválido!');
Objcpf.value="";
Objcpf.focus();
return false;
}
}*/
</script>
</head>
<body>
<form action="${pageContext.request.contextPath}/manterUsuario.do?acao=incluir" method="post" name="UsuarioForm" onSubmit="return ValidarForm()">
<fieldset>
<legend>Dados Pessoais</legend>
<table>
<tr>
<td width="150"><label>Nome:</label></td>
<td><input type="text" name="nome" size="60" maxlength="60" /></td>
</tr>
<tr>
<td><label>CPF:</label></td>
<td><input type="text" name="cpf" maxlength="14" onkeypress="MascaraCPF(UsuarioForm.cpf);" onblur="ValidarCPF(UsuarioForm.cpf);" /></td>
</tr>
<tr>
<td><label>Sexo:</label></td>
<td>
<input type="radio" name="sexo" value="M" />Masculino
<input type="radio" name="sexo" value="F" />Feminino
</td>
</tr>
<tr>
<td><label>Data Nascimento:</label></td>
<td><input type="text" name="dataNascimento" maxlength="10" onkeypress="MascaraData(UsuarioForm.dataNascimento);" onblur="ValidaData();" /></td>
</tr>
<tr>
<td><label>Telefone Residencial:</label></td>
<td>
<input type="text" name="telResidencial" maxlength="14" onkeypress="MascaraTelefone(UsuarioForm.telResidencial);" onblur="ValidaTelefone(UsuarioForm.telResidencial);" />
</td>
</tr>
<tr>
<td><label>Telefone Comercial:</label></td>
<td>
<input type="text" name="telComercial" maxlength="14" onkeypress="MascaraTelefone(UsuarioForm.telComercial);" onblur="ValidaTelefone(UsuarioForm.telComercial);" />
</td>
</tr>
<tr>
<td><label>Celular:</label></td>
<td>
<input type="text" name="celular" maxlength="14" onkeypress="MascaraTelefone(UsuarioForm.celular);" onblur="ValidaTelefone(UsuarioForm.celular);" />
</td>
</tr>
<tr>
<td><label>Email:</label></td>
<td><input type="text" name="email" id="email" mask="email" /></td>
</tr>
</table>
</fieldset>
<br />
<fieldset>
<legend>Endereço</legend>
<table>
<tr>
<td width="150"><label>Logradouro:</label></td>
<td><input type="text" name="logradouro" /></td>
</tr>
<tr>
<td><label>Numero:</label></td>
<td><input type="text" name="numero" /></td>
</tr>
<tr>
<td><label>Complemento:</label></td>
<td><input type="text" name="complemento" /></td>
</tr>
<tr>
<td><label>Bairro:</label></td>
<td><input type="text" name="bairro" /></td>
</tr>
<tr>
<td><label>Cidade:</label></td>
<td><input type="text" name="cidade" /></td>
</tr>
<tr>
<td><label>CEP:</label></td>
<td><input type="text" name="cep" maxlength="9" onkeypress="Mascara('cep', window.event.keyCode, 'document.UsuarioForm.cep');" /></td>
</tr>
<tr>
<td><label>Estado:</label></td>
<td>
<select name="idEstado">
<c:forEach var="listaEstados" items="${listaEstados}">
<option value="${listaEstados.id}">${listaEstados.nome}</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td><label>País:</label></td>
<td><input type="text" name="pais" /></td>
</tr>
</table>
</fieldset>
<br />
<fieldset>
<legend>Dados de Acesso</legend>
<table>
<tr>
<td width="150"><label>Login:</label></td>
<td><input type="text" name="login" /></td>
</tr>
<tr>
<td><label>Senha:</label></td>
<td><input type="password" name="senha" /></td>
</tr>
<tr>
<td><label>Confirme a enha:</label></td>
<td><input type="password" name="senha2" /></td>
</tr>
</table>
</fieldset>
<input type="submit" value=" Enviar " />
<input type="button" value=" Cancelar " onClick="javascript:window.location='${pageContext.request.contextPath}/inicio.do'" />
</form>
</body>
[/code]