Fórum Chave composta no Hibernate #516772
14/04/2015
0
Olá pessoal.
Estou com um problema que acredito ter solução simples, mas não encontrei em nenhum lugar ainda. Uso JSF e Hibernate com mapeamento através de arquivos hbm.xml.
Tenho uma tabela chamada FormaPagamento possui diversos campos e dentre eles, um campo chama BandeiraCartao que é outra tabela com chave primária e outro campo chamado Banco que possui chave composta.
Uma parte dos atributos do arquivo FormaPagamento.java está assim:
O arquivo BandeiraCartao é assim:
O arquivo Banco é assim:
Este atributo BancoId foi criado pelo próprio Netbeans, que é minha chave composta.
E o BancoId está assim:
O problema é o seguinte: ao cadastrar uma nova Forma de Pagamento, está gravando a Bandeira de Cartão corretamente, mas o Banco fica nulo.
Segue um trecho do meu Managed Bean do Forma de Pagamento, onde atribuo a Bandeira de Cartão e o Banco ao meu objeto FormaPagamento:
Como pode ser visto, estou tentando adicionar os objetos bandeiraCartao e banco do mesmo jeito ao formaPagamento, mas como disse, o Banco grava null no banco de dados.
O que está faltando ali para gravar corretamente?
Estou com um problema que acredito ter solução simples, mas não encontrei em nenhum lugar ainda. Uso JSF e Hibernate com mapeamento através de arquivos hbm.xml.
Tenho uma tabela chamada FormaPagamento possui diversos campos e dentre eles, um campo chama BandeiraCartao que é outra tabela com chave primária e outro campo chamado Banco que possui chave composta.
Uma parte dos atributos do arquivo FormaPagamento.java está assim:
private FormaPagamentoId id; private BandeiraCartao bandeiraCartao; private Banco banco; //getters e setters
O arquivo BandeiraCartao é assim:
private BigDecimal idBandeiraCartao; private String descricao; //getter e setters
O arquivo Banco é assim:
private BancoId id; private String descricao; private String agencia; private String conta; private Double saldo; //getters e setters
Este atributo BancoId foi criado pelo próprio Netbeans, que é minha chave composta.
E o BancoId está assim:
private BigDecimal idBanco; private BigDecimal idEmpresa; //getters e setters
O problema é o seguinte: ao cadastrar uma nova Forma de Pagamento, está gravando a Bandeira de Cartão corretamente, mas o Banco fica nulo.
Segue um trecho do meu Managed Bean do Forma de Pagamento, onde atribuo a Bandeira de Cartão e o Banco ao meu objeto FormaPagamento:
BandeiraCartao bandeiraCartao; BandeiraCartaoDao bandeiraCartaoDao = new BandeiraCartaoDao(); bandeiraCartao = bandeiraCartaoDao.consultar(idBandeiraCartao); formaPagamento.setBandeiraCartao(bandeiraCartao); Banco banco; BancoDao bancoDao = new BancoDao(); banco = bancoDao.consultar(idEmpresa, idBanco); formaPagamento.setBanco(banco);
Como pode ser visto, estou tentando adicionar os objetos bandeiraCartao e banco do mesmo jeito ao formaPagamento, mas como disse, o Banco grava null no banco de dados.
O que está faltando ali para gravar corretamente?
Victor Júnior
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)