Mapeamento >> Collection

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:

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,

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.

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.

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

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:

[code]@XmlTransient
public Collection getAutorCollection() {
return autorCollection;
}

public void setAutorCollection(Collection<Autor> autorCollection) {
    this.autorCollection = autorCollection;
}[/code]

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:

[code] @XmlTransient
public Collection getItemBibliotecaCollection() {
return itemBibliotecaCollection;
}

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

Alguém pode me ajudar. :slight_smile: