Como cadastrar uma coleção

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:

[code]/**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);
}[/code]

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?