Como cadastrar uma coleção

0 respostas
Jackye

Olá.

Estou com uma dificuldade com relação a persistencia de coleções.

Tenho o seguinte cenário: Cadastrar um empréstimo. Neste emprestimo tenho uma coleção de exemplares. No método de efetuar emprestimo usei o seguinte:
int indice = 0;
        for (Exemplar exemplar : exemplarEscolhidos) {
            emprestimo.getExemplar().add(exemplarEscolhidos.get(indice));
            indice++;
        }
Os exemplares são listados em um Jtable. Depois são pegos e criado a coleção. A table é listada buscando o exemplar pela referencia:
/**Método que pesquisa a obra no banco de dados e preenche os atributos definidos numa tabela.*/
    private void buscarObra() {
        if (txReferenciaExemplar.getText().isEmpty()) {
            JOptionPane.showMessageDialog(this, "Informe a referência da Obra a ser cadastrada!");
            // return;
        }
        int codigoExemplar = Integer.valueOf(txReferenciaExemplar.getText());

        Exemplar exemplar = ExemplarDAO.fabricaExemplarDAO().findById(codigoExemplar);

        ItemBiblioteca obra = ItemBibliotecaDAO.fabricaItemBibliotecaDAO().findById(exemplar.getCodItemBiblioteca().getCodItemBiblioteca());

        Secao secaoLocal = SecaoDAO.fabricaSecaoDAO().findById(exemplar.getCodItemBiblioteca().getCodSecao().getCodSecao());


          if (exemplar == null) {
            JOptionPane.showMessageDialog(this, "Nenhum registro de obra foi encontrado.");
            return;
        }
          
        DefaultTableModel modelo = new DefaultTableModel();
        if (exemplar.getInConsulta() != 0) {
            JOptionPane.showMessageDialog(this, "Este não pode ser emprestado!");
            return;
        } else {
            exemplarEscolhidos.add(exemplar);
        }

        modelo.addColumn("Código");
        modelo.addColumn("Título");
        modelo.addColumn("Seção");
        modelo.addColumn("Referência");
        for (Exemplar exemp : exemplarEscolhidos) {
            modelo.addRow(new Object[]{exemp.getCodExemplar(), obra.getTxTitulo(),
                        secaoLocal.getNoSecao(), obra.getNuReferencia()});
        }
        tbListarObras.setModel(modelo);
    }
A proposito esse metodo buscarObra tá pegando um exemplar e o adicionando a linha, quando é selecionado um outro exemplar este exemplar muda todas os seu valores para o ultimo que foi selecionado. O que tá havendo? Utilizo o Hibernate.

Como resolvo esses dois problemas?

Criado 12 de março de 2012
Respostas 0
Participantes 1