Hibernate não salva e nem mostra mensagem de erro

2 respostas
D

Tenho um projeto java web baseado numa aula do curso da algaworks, porem, quando fiz uma adaptacao alterando ele, acrescentando novas entidades, nao salva no banco e nem exibe log de erro. Utilizo -> hibernate, mysql, jsf.

Acredito que o problema esteja nesta classe, apesar de ser quase igual da que me baseie do curso.

`Classe CadastroClienteService

import java.io.Serializable;
import java.util.Date;

import javax.inject.Inject;

import com.tacocell.controleservicos.dao.ClienteDAO;

import com.tacocell.controleservicos.model.Cliente;

import com.tacocell.controleservicos.util.jpa.Transactional;

public class CadastroClienteService implements Serializable {

private static final long serialVersionUID = 1L;

@Inject
private ClienteDAO clienteDAO;

@Transactional
public void salvar(Cliente cliente) throws NegocioException {
	
	
	if (cliente.getNomeCliente() == null || cliente.getNomeCliente().trim().equals("")) {
		throw new NegocioException("Este campo e obrigatorio. Preencha o nome do cliente");
	}
	
	/*if (cliente.getCnpj() == null || cliente.getCnpj().trim().equals("")) {
		throw new NegocioException("O cnpj do cliente e obrigatorio");
	}
	*/
	
	if (cliente.getCodigo() == null)
	{
		cliente.setDataCadastro(new Date());
	}
	
	this.clienteDAO.salvar(cliente);
}

}

Tem estas outras classes que podem estar o erro, mas nao consegui identificar.

import java.io.Serializable;
import java.util.List;

import javax.inject.Inject;
import javax.persistence.EntityManager;

import org.hibernate.Criteria;

import org.hibernate.Session;

import org.hibernate.criterion.MatchMode;

import org.hibernate.criterion.Restrictions;

import com.tacocell.controleservicos.model.Cliente;

public class ClienteDAO implements Serializable {

private static final long serialVersionUID = 1L;

@Inject
private EntityManager manager;

public void salvar(Cliente cliente) {
	manager.merge(cliente);
}

@SuppressWarnings("unchecked")
public List<Cliente> filtrar(Cliente cliente){
	Session session = manager.unwrap(Session.class);
    Criteria criteria = session.createCriteria(Cliente.class);
    
    if (cliente.getNomeCliente() != null && !cliente.getNomeCliente().trim().equals("")) {
    	criteria.add(Restrictions.ilike("nm_cli", cliente.getNomeCliente(), MatchMode.ANYWHERE));
    }
    
    if (cliente.getCnpj() != null && !cliente.getCnpj().trim().equals("")) {
    	criteria.add(Restrictions.ilike("cnpj", cliente.getCnpj(), MatchMode.ANYWHERE));
    }
    
    return criteria.list();
	
}
public Cliente buscarPeloCodigo(Long codigo) {
	return manager.find(Cliente.class, codigo);
}

}

import java.io.Serializable;

import javax.faces.bean.ViewScoped;

import javax.inject.Inject;

import javax.inject.Named;
import com.tacocell.controleservicos.util.jsf.FacesUtil;

import com.tacocell.controleservicos.model.Cliente;

import com.tacocell.controleservicos.service.CadastroClienteService;

import com.tacocell.controleservicos.service.NegocioException;

@Named
@ViewScoped
public class CadastroClienteBean implements Serializable {

private static final long serialVersionUID = 1L;

private Cliente cliente;

@Inject
private CadastroClienteService cadastroClienteService;

public CadastroClienteBean(){
	limpar();
}

public void salvar()  {
	try{
		this.cadastroClienteService.salvar(cliente);
		FacesUtil.addSuccessMessage("Cliente salvo com sucesso!");
	}catch(NegocioException ne) {
		FacesUtil.addErrorMessage(ne.getMessage());
	}
	
	limpar();
}

public void limpar() {
	this.cliente = new Cliente();		
}

public Cliente getCliente() {
	return cliente;
}

public void setCliente(Cliente cliente) {
	this.cliente = cliente;
}

}
`

Se alguem identificar o problema, me ajude!

2 Respostas

igomes

cliente.getNomeCliente().trim().equals("") chance de nullpointer.
Posta seu pojo

D

`import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import <a href="http://javax.persistence.Id">javax.persistence.Id</a>;

import javax.persistence.Table;

import javax.persistence.Temporal;

import javax.persistence.TemporalType;
@Entity

@Table(name = clientes)

public class Cliente implements Serializable {
private static final long serialVersionUID = 1L;

private Long codigo;
private String nomeCliente;
private String cnpj;
private String cpf;
private String endereco;
private String bairro;
private int cep;
private String telefoneFixo;
private String telefoneCel;
private String email;
private Date dataCadastro;


@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getCodigo() {
	return codigo;
}

public void setCodigo(Long codigo) {
	this.codigo = codigo;
}

@Column(name="nm_cli")
public String getNomeCliente() {
	return nomeCliente;
}

public void setNomeCliente(String ncliente) {
	this.nomeCliente = ncliente;
}

public String getCnpj() {
	return cnpj;
}

public void setCnpj(String cnpj) {
	this.cnpj = cnpj;
}

public String getCpf() {
	return cpf;
}

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

public String getEndereco() {
	return endereco;
}

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

public String getBairro() {
	return bairro;
}

public void setBairro(String bairro) {
	this.bairro = bairro;
}

public int getCep() {
	return cep;
}

public void setCep(int cep) {
	this.cep = cep;
}

@Column(name="telfixo")
public String getTelefoneFixo() {
	return telefoneFixo;
}

public void setTelefoneFixo(String telefoneFixo) {
	this.telefoneFixo = telefoneFixo;
}

@Column(name="telcel")
public String getTelefoneCel() {
	return telefoneCel;
}

public void setTelefoneCel(String telefoneCel) {
	this.telefoneCel = telefoneCel;
}

public String getEmail() {
	return email;
}

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

@Temporal(TemporalType.DATE)
@Column(name="dt_cad")
public Date getDataCadastro() {
	return dataCadastro;
}

public void setDataCadastro(Date dataCadastro) {
	this.dataCadastro = dataCadastro;
}


@Override
public int hashCode() {
	final int prime = 31;
	int result = 1;
	result = prime * result + ((codigo == null) ? 0 : codigo.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;
	Cliente other = (Cliente) obj;
	if (codigo == null) {
		if (other.codigo != null)
			return false;
	} else if (!codigo.equals(other.codigo))
		return false;
	return true;
}

}

`

Criado 18 de março de 2016
Ultima resposta 20 de mar. de 2016
Respostas 2
Participantes 2