Bom dia pessoa, estou com erro aqui que é muito estranho. Vou tentar explicar da melhor forma possível.
Estou fazendo um sistema de controle pessoal, para estudar mesmo pois só iniciante ainda. E estou com o seguinte problema.
Eu fiz o cadastro de usuários e cadastro de contas bancárias.
No cadastro de usuário, eu já deixei a opção para o usuário cadastrar sua primeira conta na hora do registro. Ele só pede o valor "descrição" e "saldo inicial".
O problema é o seguinte:
Quando eu crio a conta já no cadastro, ele salva todos os dados perfeitamente no banco de dados.
Ao listar as contas ele me traz, descrição, data, saldo inicial, se é favorita ou não, e as opções de editar e excluir. Tudo isso é salvo perfeitamente no Banco de Dados.
Porém, quando eu tento adicionar uma nova conta na pagina de contas, o que acontece é o seguinte.
Eu coloco a descrição, coloco o saldo inicial.
Mas no banco de dados, ele não está pegando nem a Descrição e nem o Saldo Inicial. O resto vai normalmente.
Veja como fica no banco de dados, as 2 contas que estão com as informações completas foram criadas na hora do registro, as outras pela pagina de contas.
Vou postar os codigos fontes, talvez alguém possa me ajudar.
Classe Conta
package financeiro.conta;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.*;
import javax.persistence.Table;
import org.hibernate.annotations.*;
import financeiro.usuario.Usuario;
@Entity
@Table(name="conta_bancaria")
public class Conta implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name="cod_conta")
private Integer conta;
@ManyToOne
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name = "cod_usuario", nullable = false)
private Usuario usuario;
@Column(name="des_conta")
private String descricao;
@Column(name="dat_cadastro", nullable = false, updatable = false)
private Date dataCadastro;
@Column(name="saldo_inicial")
private float saldoInicial;
@Column(name="favorita")
private boolean favorita;
public Integer getConta() {
return conta;
}
public void setConta(Integer conta) {
this.conta = conta;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public Date getDataCadastro() {
return dataCadastro;
}
public void setDataCadastro(Date dataCadastro) {
this.dataCadastro = dataCadastro;
}
public float getSaldoInicial() {
return saldoInicial;
}
public void setSaldoInicial(float saldoInicial) {
this.saldoInicial = saldoInicial;
}
public boolean isFavorita() {
return favorita;
}
public void setFavorita(boolean favorita) {
this.favorita = favorita;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((conta == null) ? 0 : conta.hashCode());
result = prime * result + ((dataCadastro == null) ? 0 : dataCadastro.hashCode());
result = prime * result + ((descricao == null) ? 0 : descricao.hashCode());
result = prime * result + (favorita ? 1231 : 1237);
result = prime * result + ((usuario == null) ? 0 : usuario.hashCode());
result = prime * result + Float.floatToIntBits(saldoInicial);
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Conta other = (Conta) obj;
if (conta == null) {
if (other.conta != null)
return false;
} else if (!conta.equals(other.conta))
return false;
if (dataCadastro == null) {
if (other.dataCadastro != null)
return false;
} else if (!dataCadastro.equals(other.dataCadastro))
return false;
if (descricao == null) {
if (other.descricao != null)
return false;
} else if (!descricao.equals(other.descricao))
return false;
if (favorita != other.favorita)
return false;
if (usuario == null) {
if (other.usuario != null)
return false;
} else if (!usuario.equals(other.usuario))
return false;
if (Float.floatToIntBits(saldoInicial) != Float.floatToIntBits(other.saldoInicial))
return false;
return true;
}
}
Classe ContaDAO
package financeiro.conta;
import java.util.List;
import financeiro.usuario.Usuario;
public interface ContaDAO {
public void salvar(Conta conta);
public void excluir(Conta conta);
public Conta carregar(Integer conta);
public List<Conta> listar(Usuario usuario);
public Conta buscarFavorita(Usuario usuario);
}
Classe ContaDAOHibernate
package financeiro.conta;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import financeiro.usuario.Usuario;
public class ContaDAOHibernate implements ContaDAO {
private Session session;
public void setSession(Session session) {
this.session = session;
}
@Override
public void excluir(Conta conta) {
this.session.delete(conta);
}
@Override
public void salvar(Conta conta) {
this.session.saveOrUpdate(conta);
}
@Override
public Conta carregar(Integer conta) {
return (Conta) this.session.get(Conta.class, conta);
}
@SuppressWarnings("unchecked")
@Override
public List<Conta> listar(Usuario usuario) {
Criteria criteria = this.session.createCriteria(Conta.class);
criteria.add(Restrictions.eq("usuario", usuario));
return criteria.list();
}
@Override
public Conta buscarFavorita(Usuario usuario) {
Criteria criteria = this.session.createCriteria(Conta.class);
criteria.add(Restrictions.eq("usuario", usuario));
criteria.add(Restrictions.eq("favorita", true));
return (Conta) criteria.uniqueResult();
}
}
Classe ContaRN
package financeiro.conta;
import java.util.Date;
import java.util.List;
import financeiro.usuario.Usuario;
import financeiro.util.DAOFactory;
public class ContaRN {
private ContaDAO contaDAO;
public ContaRN() {
this.contaDAO = DAOFactory.criarContaDAO();
}
public List<Conta> listar(Usuario usuario) {
return this.contaDAO.listar(usuario);
}
public Conta carregar(Integer conta) {
return this.contaDAO.carregar(conta);
}
public void salvar(Conta conta) {
conta.setDataCadastro(new Date());
this.contaDAO.salvar(conta);
}
public void excluir(Conta conta) {
this.contaDAO.excluir(conta);
}
public void tornarFavorita(Conta contaFavorita) {
Conta conta = this.buscarFavorita(contaFavorita.getUsuario());
if (conta != null) {
conta.setFavorita(false);
this.contaDAO.salvar(conta);
}
contaFavorita.setFavorita(true);
this.contaDAO.salvar(contaFavorita);
}
public Conta buscarFavorita(Usuario usuario) {
return this.contaDAO.buscarFavorita(usuario);
}
}
Classe ContaBean
package financeiro.web;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import financeiro.conta.Conta;
import financeiro.conta.ContaRN;
import financeiro.web.util.ContextoUtil;
@ManagedBean(name="contaBean")
@RequestScoped
public class ContaBean {
private Conta selecionada = new Conta();
private List<Conta> lista = null;
public void salvar(){
ContextoBean contextoBean = ContextoUtil.getContextoBean();
this.selecionada.setUsuario(contextoBean.getUsuarioLogado());
ContaRN contaRN = new ContaRN();
contaRN.salvar(this.selecionada);
this.selecionada = new Conta();
this.lista = null;
}
public void editar(){
}
public void excluir(){
ContaRN contaRN = new ContaRN();
contaRN.excluir(this.selecionada);
this.selecionada = new Conta();
this.lista = null;
}
public void tornarFavorita(){
ContaRN contaRN = new ContaRN();
contaRN.tornarFavorita(this.selecionada);
this.selecionada = new Conta();
}
public Conta getSelecionada() {
return selecionada;
}
public void setSelecionada(Conta selecionada) {
this.selecionada = selecionada;
}
public List<Conta> getLista() {
if(this.lista == null){
ContextoBean contextoBean = ContextoUtil.getContextoBean();
ContaRN contaRN = new ContaRN();
this.lista = contaRN.listar(contextoBean.getUsuarioLogado());
}
return this.lista;
}
public void setLista(List<Conta> lista) {
this.lista = lista;
}
}
Classe UsuarioBean (onde eu inserir a opçao de cadastrar conta na hora do registro de usuario.
package financeiro.web;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import financeiro.conta.Conta;
import financeiro.conta.ContaRN;
import financeiro.usuario.Usuario;
import financeiro.usuario.UsuarioRN;
@ManagedBean(name = "usuarioBean")
@RequestScoped
public class UsuarioBean {
public Conta getConta() {
return conta;
}
public void setConta(Conta conta) {
this.conta = conta;
}
public void setLista(List<Usuario> lista) {
this.lista = lista;
}
private Usuario usuario = new Usuario();
private String confirmarSenha;
private List<Usuario> lista;
private String destinoSalvar;
private Conta conta = new Conta();
public String novo() {
this.destinoSalvar = "usuarioSucesso";
this.usuario = new Usuario();
this.usuario.setAtivo(true);
return "usuario";
}
public String editar(){
this.confirmarSenha = this.usuario.getSenha();
return "/publico/usuario";
}
public String salvar() {
FacesContext context = FacesContext.getCurrentInstance();
String senha = this.usuario.getSenha();
if (!senha.equals(this.confirmarSenha)) {
FacesMessage facesMessage = new FacesMessage(
"A senha não foi informada corretamente");
context.addMessage(null, facesMessage);
return null;
}
UsuarioRN usuarioRN = new UsuarioRN();
usuarioRN.salvar(this.usuario);
if(this.conta.getDescricao() != null){
this.conta.setUsuario(this.usuario);
this.conta.setFavorita(true);
ContaRN contaRN = new ContaRN();
contaRN.salvar(this.conta);
}
return this.destinoSalvar;
}
public String excluir(){
UsuarioRN usuarioRN = new UsuarioRN();
usuarioRN.excluir(this.usuario);
this.lista = null;
return null;
}
public String ativar(){
if(this.usuario.isAtivo()){
this.usuario.setAtivo(false);
} else {
this.usuario.setAtivo(true);
}
UsuarioRN usuarioRN = new UsuarioRN();
usuarioRN.salvar(this.usuario);
return null;
}
public List<Usuario> getLista(){
if(this.lista == null){
UsuarioRN usuarioRN = new UsuarioRN();
this.lista = usuarioRN.listar();
}
return this.lista;
}
public String atribuirPermissao(Usuario usuario, String permissao){
this.usuario = usuario;
java.util.Set<String> permissoes = this.usuario.getPermissao();
if(permissoes.contains(permissao)){
permissoes.remove(permissao);
} else {
permissoes.add(permissao);
}
return null;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((confirmarSenha == null) ? 0 : confirmarSenha.hashCode());
result = prime * result + ((conta == null) ? 0 : conta.hashCode());
result = prime * result
+ ((destinoSalvar == null) ? 0 : destinoSalvar.hashCode());
result = prime * result + ((lista == null) ? 0 : lista.hashCode());
result = prime * result + ((usuario == null) ? 0 : usuario.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;
UsuarioBean other = (UsuarioBean) obj;
if (confirmarSenha == null) {
if (other.confirmarSenha != null)
return false;
} else if (!confirmarSenha.equals(other.confirmarSenha))
return false;
if (conta == null) {
if (other.conta != null)
return false;
} else if (!conta.equals(other.conta))
return false;
if (destinoSalvar == null) {
if (other.destinoSalvar != null)
return false;
} else if (!destinoSalvar.equals(other.destinoSalvar))
return false;
if (lista == null) {
if (other.lista != null)
return false;
} else if (!lista.equals(other.lista))
return false;
if (usuario == null) {
if (other.usuario != null)
return false;
} else if (!usuario.equals(other.usuario))
return false;
return true;
}
public Usuario getUsuario() {
return usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public String getConfirmarSenha() {
return confirmarSenha;
}
public void setConfirmarSenha(String confirmarSenha) {
this.confirmarSenha = confirmarSenha;
}
public String getDestinoSalvar() {
return destinoSalvar;
}
public void setDestinoSalvar(String destinoSalvar) {
this.destinoSalvar = destinoSalvar;
}
}
Pergunta
dennnis
Bom dia pessoa, estou com erro aqui que é muito estranho. Vou tentar explicar da melhor forma possível.
Estou fazendo um sistema de controle pessoal, para estudar mesmo pois só iniciante ainda. E estou com o seguinte problema.
Eu fiz o cadastro de usuários e cadastro de contas bancárias.
No cadastro de usuário, eu já deixei a opção para o usuário cadastrar sua primeira conta na hora do registro. Ele só pede o valor "descrição" e "saldo inicial".
O problema é o seguinte:
Quando eu crio a conta já no cadastro, ele salva todos os dados perfeitamente no banco de dados.
Ao listar as contas ele me traz, descrição, data, saldo inicial, se é favorita ou não, e as opções de editar e excluir. Tudo isso é salvo perfeitamente no Banco de Dados.
Porém, quando eu tento adicionar uma nova conta na pagina de contas, o que acontece é o seguinte.
Eu coloco a descrição, coloco o saldo inicial.
Mas no banco de dados, ele não está pegando nem a Descrição e nem o Saldo Inicial. O resto vai normalmente.
Veja como fica no banco de dados, as 2 contas que estão com as informações completas foram criadas na hora do registro, as outras pela pagina de contas.
view plaincopy to clipboardprint?
+-----------+-------------+------------+---------------------+---------------+----------+
| cod_conta | cod_usuario | des_conta | dat_cadastro | saldo_inicial | favorita |
+-----------+-------------+------------+---------------------+---------------+----------+
| 8 | 1 | Banco Itau | 2011-09-13 18:24:54 | 1000 | |
| 12 | 1 | NULL | 2011-09-13 21:56:32 | 0 | |
| 13 | 1 | NULL | 2011-09-13 21:57:15 | 0 | |
| 14 | 2 | Banco HSBC | 2011-09-13 21:58:24 | 10000 | |
| 18 | 2 | NULL | 2011-09-13 22:56:59 | 0 | |
+-----------+-------------+------------+---------------------+---------------+----------+
Alguém tem alguma idéia do que pode ser?
Vou postar os codigos fontes, talvez alguém possa me ajudar.
Classe Conta
Classe ContaDAO Classe ContaDAOHibernate Classe ContaRN Classe ContaBean Classe UsuarioBean (onde eu inserir a opçao de cadastrar conta na hora do registro de usuario. e os JSF Tela de cadastro de conta E no cadastro de usuario Obrigado.Obrigado.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.