Senhores, estou com um problema aqui, estou fazendo um programa para uma biblioteca do meu bairro !
o programa está cadastrando/pesquisando/excluindo/ MAS, não Edita os Dados… segue meus fontes em baixo.
*******************
JSP
PROCURA O CLIENTE E PREENCHE O FORMULARIO
<a >Detalhes
***************************************************
APLICA NO BANCO A ATUALIZAÇÃO
<a >
***************************************************
APLICA NO BANCO A ATUALIZAÇÃO
<a >
cliente.lista.logic"> <title="Click para pesquisar: ${usuario.login}"/>Pesquisar</a>
cliente.exclui.logic?cliente.id=${cliente.id}"> Remover </a>
cliente.atualiza.logic?cliente.id=${cliente.id}"> <title="Click para excluir: ${usuario.login}"/>Atualiza</a>
cliente.salvaupdate.logic?cliente.id=${cliente.id}"> <title="Click para excluir: ${usuario.login}"/>Update</a>
não da erro somente por que eu direciono tudo se não da certo !
*******************
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;
GET SETS
*****************************************************
package br.com.caelum.lojavirtual.logic;
import java.util.List;
import org.vraptor.annotations.Component;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.annotations.Remotable;
import org.vraptor.plugin.hibernate.Validate;
import br.com.caelum.lojavirtual.dao.DaoFactory;
import br.com.caelum.lojavirtual.modelo.Cliente;
@Component("cliente")
@InterceptedBy({DaoInterceptor.class, AutorizadorInterceptor.class})
public class ClienteLogic {
public Cliente cliente;
private final DaoFactory daoFactory;
private List<Cliente> clientes;
public ClienteLogic(DaoFactory daoFactory) {
this.daoFactory = daoFactory;
}
//adiciona clientes
@Validate(params={"cliente"})
public void adiciona(Cliente cliente) {
this.daoFactory.beginTransaction();
this.daoFactory.getClienteDao().adiciona(cliente);
this.daoFactory.commit();
}
//remove clientes
@Validate(params={"cliente"})
public void exclui(Cliente cliente) {
this.daoFactory.beginTransaction();
this.daoFactory.getClienteDao().exclui(cliente);
this.daoFactory.commit();
}
//atualiza clientes
@Validate(params={"cliente"})
public void atualiza(Cliente cliente) {
this.daoFactory.beginTransaction();
this.daoFactory.getClienteDao().atualiza(cliente);
this.daoFactory.commit();
}
//atualiza clientes
@Validate(params={"cliente"})
public void salvaupdate(Cliente cliente) {
this.daoFactory.beginTransaction();
this.daoFactory.getClienteDao().salvaupdate(cliente);
this.daoFactory.commit();
}
//procura clientes
@Validate(params={"cliente"})
public void procura(Cliente cliente) {
this.daoFactory.beginTransaction();
this.cliente = this.daoFactory.getClienteDao().procura(cliente.getId());
this.daoFactory.commit();
}
@Validate(params={"cliente"})
public void procuraIdCliente(Cliente cliente) {
this.daoFactory.beginTransaction();
this.cliente = this.daoFactory.getClienteDao().procura(cliente.getId());
this.daoFactory.commit();
}
//lista clientes
public void lista() {
clientes = this.daoFactory.getClienteDao().listaTudo();
}
public void formulario() {
}
// PESQUISA SIMPLE DE clienteS, autocompletar
@Remotable
public void searchNome(Cliente cliente) {
if (cliente.getNome() == null) {
cliente.setNome("");
}
//procura os clientes com um Nome
this.clientes = this.daoFactory.getClienteDao().searchSimilarNome(cliente.getNome());
}
@Remotable
public void searchCpf(Cliente cliente) {
if (cliente.getCpf() == null) {
cliente.setCpf("");
}
//procura os clientes com um Nome
this.clientes = this.daoFactory.getClienteDao().searchSimilarCpf(cliente.getCpf());
}
public void searchCombo(Cliente cliente) {
if (cliente == null || cliente.getNome() == null) {
return;
}
//procura os clientes com um Nome
this.clientes = this.daoFactory.getClienteDao().searchSimilarNome(cliente.getNome());
}
public List<Cliente> getclientes() {
return clientes;
}
public Cliente getcliente() {
return 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();
}
}
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
}