Chave composta no Hibernate

Oracle

Java

14/04/2015

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:

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

Victor Júnior

Curtidas 0
POSTAR