Mapeamento >> Collection

5 respostas
Jackye

Olá galera!! :smiley:

Estou utilizando o Hibernate para criar uma aplicação desktop,
gostaria que explicassem um pouco sobre os tipos de coleções na hora do mapeamento com as tabelas do BD, e qual é melhor para utilizar na aplicação.

Os tipos de coleção são:

[list]java.util.collection[/list]
[list]java.util.list[/list]
[list]java.util.set [/list]

Até! :wink:

5 Respostas

pedruhenrik

http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html

http://docs.oracle.com/javase/6/docs/api/java/util/List.html

http://docs.oracle.com/javase/6/docs/api/java/util/Set.html

acho q já é um começo.

vc chegou a pesquiar algo?

att,

Jackye

Oi, pedruhenrik!

Eu encontrei este links aqui:

http://publib.boulder.ibm.com/infocenter/adiehelp/v5r1m1/index.jsp?topic=%2Fcom.sun.api.doc%2Fjava%2Futil%2FCollection.html
http://publib.boulder.ibm.com/infocenter/adiehelp/v5r1m1/index.jsp?topic=%2Fcom.sun.api.doc%2Fjava%2Futil%2FList.html
http://publib.boulder.ibm.com/infocenter/adiehelp/v5r1m1/index.jsp?topic=%2Fcom.sun.api.doc%2Fjava%2Futil%2FCollection.html

Que dizem o mesmo que nas suas referências. =/

Qual é melhor para utilizar na aplicação? Por padrão estou utilizando o java.util.collection.

pedruhenrik

a grosso modo EU vejo da seguinte maneira:

Interfaces:

Set: uma coleção que não permite duplicidade.

List: uma coleção que permite duplicidade, pode ser ordenada e é manipulada através de indice.

Collection: a coleção “mãe” q tem tds os metodos a serem disponibilizados as implementações.

e tem as implementações(EU ACHO rsrs):

ArrayList: lista padrão rsrs.

LinkedList: uma lista de forma mais fácil a manipular o inicio e fim(não me lembro de ter usado esse).

HashSet: um Set não ordenado(rs).

TreeSet: um Set ordenado.

HashMap: um cara q vc passa uma chave(para identificar) e o valor(representado pela chave).

TreeMap: msm coisa do cara acima mas ordenado.

M

Bom, costumo usar List, pois é mais fácil e simples de manter se código.

Set também é interessante, se você for trabalhar com uma enorme quantidade de dados talvez seja melhor.

Listas e Sets de crescem muito de uma moda diferente. ArrayList cresce usando System.arraycopy e Set cresce com rehashing.

Boa sorte

Jackye

Eu utilizei o Collection e algumas classes cria muitos collections na hora de fazer um relacionamento N:N esses collections ajudam? Ou é necessario criar uma classe?
No meu caso tenho uma classe obra e Autor elas tem um relacionamento de N:N, como faço para o IdAutor apareça na classe Obra? Estou com dúvidas nisso!

Na classe Obra tem o seguinte código de relacionamento (Usando Annotations do Hibernate):
@ManyToMany(mappedBy = "itemBibliotecaCollection")
    private Collection<Autor> autorCollection;
E ainda:
@XmlTransient
    public Collection<Autor> getAutorCollection() {
        return autorCollection;
    }

    public void setAutorCollection(Collection<Autor> autorCollection) {
        this.autorCollection = autorCollection;
    }
E a classe Autor recebe o seguinte:
@JoinTable(name = "ItemBibliotecaAutor", joinColumns = {
        @JoinColumn(name = "CodAutor", referencedColumnName = "CodAutor", nullable = false)}, inverseJoinColumns = {
        @JoinColumn(name = "CodItemBiblioteca", referencedColumnName = "CodItemBiblioteca", nullable = false)})
    @ManyToMany
    private Collection<ItemBiblioteca> itemBibliotecaCollection;
E tambem aparece um Annotation XML Transient com:
@XmlTransient
    public Collection<ItemBiblioteca> getItemBibliotecaCollection() {
        return itemBibliotecaCollection;
    }

    public void setItemBibliotecaCollection(Collection<ItemBiblioteca> itemBibliotecaCollection) {
        this.itemBibliotecaCollection = itemBibliotecaCollection;
    }

Alguém pode me ajudar. :)

Criado 13 de dezembro de 2011
Ultima resposta 13 de dez. de 2011
Respostas 5
Participantes 3