Pode ser o último também. Não tem problema. Eu só preciso que quando a página de cadastro de cliente abrir depois do login os dados do primeiro ou último cliente sejam exibidos.
Estou postando os códigos para que vocês possam me dar um help.
ClienteDao
public interface ClienteDao {
public void salvar(Cliente cliente);
public void atualizar(Cliente cliente);
public Cliente carregar(Integer codigo);
public Cliente buscarPorCpfCnpj(String cpfcnpj);
public List listar();
public List buscar(String filtroCliente);
}
ClienteRN
public class ClienteRN {
private final ClienteDao clienteDao;
public ClienteRN() {
this.clienteDao = DAOFactory.criarClienteDao();
}
public void salvar(Cliente c) {
c.setDatacadastro(new Date());
Integer codigo = c.getCodigo();
if (codigo == null || codigo == 0) {
String cpfcnpj = c.getCpf_cnpj();
Cliente cpfcnpjExistente = clienteDao.buscarPorCpfCnpj(cpfcnpj);
if (cpfcnpjExistente != null) {
FacesUtil.addWarnMessage("Este CPF / CNPJ já foi cadastrado.");
} else {
this.clienteDao.salvar(c);
}
} else {
this.clienteDao.atualizar(c);
}
}
public List<Cliente> listar() {
return this.clienteDao.listar();
}
public Cliente carregar(Integer codigo) {
return this.clienteDao.carregar(codigo);
}
public List<Cliente> buscar(String filtroCliente) {
return this.clienteDao.buscar(filtroCliente);
}
}
ClienteDaoHibernate
public class ClienteDaoHibernate implements ClienteDao {
private Session sessao;
public void setSessao(Session sessao) {
this.sessao = sessao;
}
@Override
public void salvar(Cliente c) {
this.sessao.save(c);
}
@Override
public void atualizar(Cliente c) {
this.sessao.update(c);
}
@Override
public Cliente carregar(Integer codigo) {
return (Cliente) this.sessao.get(Cliente.class, codigo);
}
@Override
public Cliente buscarPorCpfCnpj(String cpfcnpj) {
String hql = "select c from Cliente c where c.cpf_cnpj = :cpf_cnpj";
Query consulta = this.sessao.createQuery(hql);
consulta.setString("cpf_cnpj", cpfcnpj);
return (Cliente) consulta.uniqueResult();
}
@SuppressWarnings("unchecked")
@Override
public List<Cliente> listar() {
return this.sessao.createCriteria(Cliente.class)
.addOrder(Order.asc("nome"))
.list();
}
@Override
public List<Cliente> buscar(String filtroCliente) {
Criteria criteria = sessao.createCriteria(Cliente.class);
if (filtroCliente != null) {
criteria.add(Restrictions.or(
Restrictions.ilike("nome", filtroCliente, MatchMode.ANYWHERE),
Restrictions.ilike("cpf_cnpj", filtroCliente, MatchMode.ANYWHERE),
Restrictions.ilike("emailprincipal", filtroCliente, MatchMode.ANYWHERE),
Restrictions.ilike("fixo", filtroCliente, MatchMode.ANYWHERE),
Restrictions.ilike("celular", filtroCliente, MatchMode.ANYWHERE)
));
}
return criteria.list();
}
}
ClienteBean
private void limpar() {
cliente = new Cliente();
}
public String editar() {
return "/restrito/cliente/cadastro_cliente";
}
public String novo() {
this.cliente = new Cliente();
return "/restrito/cliente/cadastro_cliente";
}
public void salvar() {
ClienteRN clienteRN = new ClienteRN();
clienteRN.salvar(this.cliente);
}
public String orcamento() {
return "/restrito/orcamento";
}
public void buscar() {
ClienteRN clienteRN = new ClienteRN();
this.lista = clienteRN.buscar(getFiltroCliente());
}
public String getFiltroCliente() {
return filtroCliente;
}
public void setFiltroCliente(String filtroCliente) {
this.filtroCliente = filtroCliente;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public Profissao getProfissao() {
return profissao;
}
public void setProfissao(Profissao profissao) {
this.profissao = profissao;
}
public List<Cliente> getLista() {
if (this.lista == null) {
ClienteRN clienteRN = new ClienteRN();
this.lista = clienteRN.buscar(filtroCliente);
}
return lista;
}
public List<EstadoCivil> getEstadoscivis() {
return estadoscivis = Arrays.asList(EstadoCivil.values());
}
public List<Uf> getUfs() {
return ufs = Arrays.asList(Uf.values());
}
public List<Profissao> getProfissoes() {
if (this.profissoes == null) {
ProfissaoRN profissaoRN = new ProfissaoRN();
this.profissoes = profissaoRN.listar();
}
return profissoes;
}
}