Problema com Anotações,@NotNull,@NotEmpty!

1 resposta
juniorsatanas

Quando eu deixo minha classe com as anotações, o sistema para de EXCLUIR OS Registros, motivos ?
é como se ele salvase somente o ID, mais leva todos os dados para o Formulário, mais quando mandou atualizar ele da erro ! se eu comentar as anotações, fica normal…

package br.com.caelum.lojavirtual.modelo;


import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

import org.hibernate.validator.Email;
import org.hibernate.validator.Length;
//import org.hibernate.validator.NotEmpty;
//import org.hibernate.validator.NotNull;

@Entity
public class Cliente {

	@Id
	@GeneratedValue
	private Long id;
	//@NotNull(message="Nome do Cliente não foi Digitado")
	//@NotEmpty(message="ATENÇÃO.: Nome é Obrigatório")
        private String nome;
        @Length(max =12)
        private String cpf;
        private String rg;
        private String endereco;
        private String mae;
        private String cidade;
        private String estado;
        @Email(message="ATENÇÃO.: E-mail não é válido")
	private String email;
        @Length(max =10)
        private String telefone;
       

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public String getRg() {
        return rg;
    }

    public void setRg(String rg) {
        this.rg = rg;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getMae() {
        return mae;
    }

    public void setMae(String mae) {
        this.mae = mae;
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

 
 
}
**************************************
package br.com.caelum.lojavirtual.dao;


import br.com.caelum.lojavirtual.modelo.Cliente;
import java.util.List;
import br.com.caelum.lojavirtual.modelo.Usuario;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;


public class Dao<T> {
    
    protected final Session session;
    protected final Class classe;

    protected Dao(Session session, Class classe) {
        this.session = session;
        this.classe = classe;
    }
     protected Session getSession(){
        return session;
    }

	 public void adiciona(T u) {
        this.session.save(u);
        }
         public void exclui(T u) {
        this.session.delete(u);
    }
        public void atualiza(T u) {
        this.session.merge(u);
    }    
     public void salvaupdate(T u) {
        this.session.saveOrUpdate(u);
    }    
    
        public T procura(int id) {
        return (T) session.load(this.classe, id);
    }    
     
    public List<T> listaTudo() {
        return this.session.createCriteria(this.classe).list();    
    }    
    public List<T> consultaParte(String nmCampo, String vlCampo) {                
        return this.session.createCriteria(this.classe).add(Restrictions.ilike(nmCampo, "%" + vlCampo + "%")).list();
    }    
    public List<T> consultaExata(String nmCampo, String vlCampo) {                
  	return session.createCriteria(this.classe).add(Restrictions.eq(nmCampo, "%" + vlCampo + "%")).list();   
    } 

    // CRITERIA PARA USUARIO
    @SuppressWarnings("unchecked")
    public List<Usuario> searchSimilarLogin(String login) {
       return session.createCriteria(Usuario.class).add(
               Restrictions.ilike("login", "%" + login + "%")).list();
    }
  
    // FIM DA CRITERIA PARA CDS 
    // CRITERIA PARA USUARIO
    @SuppressWarnings("unchecked")
    public List<Usuario> searchSimilarId(Long id) {
       return session.createCriteria(Usuario.class).add(
               Restrictions.ilike("id", "%" + id + "%")).list();
    }
    // FIM DA CRITERIA PARA CDS 
  // FIM DA CRITERIA PARA CDS 
    // CRITERIA PARA USUARIO
    @SuppressWarnings("unchecked")
    public List<Usuario> searchSimilarSenha(Long senha) {
       return session.createCriteria(Usuario.class).add(
               Restrictions.ilike("senha", "%" + senha + "%")).list();
    }
    // FIM DA CRITERIA PARA CDS 
   
    // CRITERIA PARA CDS cliente
    @SuppressWarnings("unchecked")
    public List<Cliente> searchSimilarNome(String nome) {
       return session.createCriteria(Cliente.class).add(
               Restrictions.ilike("nome", "%" + nome + "%")).list();
    }
    // FIM DA CRITERIA PARA cliente
    

    
}

****************************
package br.com.caelum.lojavirtual.dao;

import org.hibernate.Session;
import java.util.List;
import br.com.caelum.lojavirtual.modelo.Cliente;
import org.hibernate.criterion.Restrictions;
public class ClienteDao extends Dao<Cliente> {
    

		public ClienteDao(Session session) {
		super(session, Cliente.class);
	}
 	
        //PROCURA para cliente
        public Cliente procura(Long id) {
        return (Cliente) session.load(Cliente.class, id);
    }     
        
        
        Cliente procuraIdCliente(Long id) {
        return (Cliente) session.load(Cliente.class, id);
    }    
        
        public List<Cliente> lista() {
        return this.session.createCriteria(Cliente.class).list();    
    }  
/*
	@SuppressWarnings("unchecked")
	public List<Cliente> searchSimilarNome(String nome) {
		return session.createCriteria(Cliente.class).add(
				Restrictions.ilike("nome", "%" + nome + "%")).list();
	}
      
*/
        @SuppressWarnings("unchecked")
	public List<Cliente> searchSimilarCpf(String cpf) {
		return session.createCriteria(Cliente.class).add(
				Restrictions.ilike("cpf", "%" + cpf + "%")).list();
	}
      
        
}
***********************

1 Resposta

juniorsatanas

ERRO DESGRAÇADO !

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Could not execute JDBC batch update
	org.vraptor.VRaptorServlet.service(VRaptorServlet.java:95)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
	org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
	org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
	org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
	org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
	org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
	org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
	org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
	org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
	org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
	br.com.caelum.lojavirtual.dao.DaoFactory.commit(DaoFactory.java:22)
	br.com.caelum.lojavirtual.logic.ClienteLogic.atualiza(ClienteLogic.java:43)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	org.vraptor.component.DefaultLogicMethod.execute(DefaultLogicMethod.java:117)
	org.vraptor.plugin.LogicMethodWrapper.execute(LogicMethodWrapper.java:28)
	org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:37)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:131)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:58)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	br.com.caelum.lojavirtual.logic.AutorizadorInterceptor.intercept(AutorizadorInterceptor.java:28)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	br.com.caelum.lojavirtual.logic.DaoInterceptor.intercept(DaoInterceptor.java:24)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:88)
	org.vraptor.core.DefaultController.execute(DefaultController.java:42)
	org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

java.sql.BatchUpdateException: Column 'nome' cannot be null
	com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1237)
	com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:936)
	org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
	org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
	org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
	org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
	org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
	org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
	org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
	org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
	org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
	br.com.caelum.lojavirtual.dao.DaoFactory.commit(DaoFactory.java:22)
	br.com.caelum.lojavirtual.logic.ClienteLogic.atualiza(ClienteLogic.java:43)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	org.vraptor.component.DefaultLogicMethod.execute(DefaultLogicMethod.java:117)
	org.vraptor.plugin.LogicMethodWrapper.execute(LogicMethodWrapper.java:28)
	org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:37)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:131)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:58)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	br.com.caelum.lojavirtual.logic.AutorizadorInterceptor.intercept(AutorizadorInterceptor.java:28)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	br.com.caelum.lojavirtual.logic.DaoInterceptor.intercept(DaoInterceptor.java:24)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:38)
	org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
	org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:88)
	org.vraptor.core.DefaultController.execute(DefaultController.java:42)
	org.vraptor.VRaptorServlet.service(VRaptorServlet.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
Criado 12 de março de 2008
Ultima resposta 12 de mar. de 2008
Respostas 1
Participantes 1