Hibernate nao carrega coleção![RESOLVIDO]  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
renato_ramos
JavaGuru
[Avatar]

Membro desde: 07/10/2009 12:04:32
Mensagens: 234
Offline

Oi!

pessoal meu caso é o seguinte:

eu tenho tres classes de persistencia.. vamos supor A , B e C

esse é o relacionamento
A n-n B
B 1-n C

quando eu pego um objeto da classe A .. eu consigo carregar a coleção da classe B.. mas os objetos da coleção não carregam os objetos da Classe C...

já procurei em um monte delugar algo parecido.. mas não achei..


mt obrigado =D

[]'s

This message was edited 1 time. Last update was at 24/11/2009 13:19:10


[]'s Renato Ramos
[Email] [MSN]
alberto_ribeiro
JavaEvangelist
[Avatar]

Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline

bom dia, o problema é que na classe B tem uma lista de C e não está carregando ? se sim manda como você mapeou a lista de C na classe B...

Sun Certified Programmer for Java 1.5
[Email] [MSN]
renato_ramos
JavaGuru
[Avatar]

Membro desde: 07/10/2009 12:04:32
Mensagens: 234
Offline

oie!

a classe B



e a classe C



sou iniciante com hbernate =D

obrigado pela atenção Alberto

[]'s Renato Ramos
[Email] [MSN]
alberto_ribeiro
JavaEvangelist
[Avatar]

Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline

opa pelo que eu vi, a coleção está LAZY então quando você der um simples get nessa coleção o hibernate deveria trazer os dados para você, agora pelo que lembro se quiser que já esteja carregada troque para EAGER




ve ai se rola ou não...

Sun Certified Programmer for Java 1.5
[Email] [MSN]
renato_ramos
JavaGuru
[Avatar]

Membro desde: 07/10/2009 12:04:32
Mensagens: 234
Offline

já tinha tentado antes com como EAGER

mas dá exeção, "org.hibernate.HibernateException: cannot simultaneously fetch multiple bags"


no caso a classe A que é a classe questionario.. carregar nesse modo as questões ^^'

tah aqui o mapeamento dela



e se eu coloco lazy nessa, ele não carrega as questões... a minha questão é como inicializar uma coleção que tem modo Lazy..
acho que é esta =D

mt obrigado

[]'s Renato Ramos
[Email] [MSN]
alberto_ribeiro
JavaEvangelist
[Avatar]

Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline

opa !!!

então, o que eu sei é que quando está LAZY é só você pegar seu objeto e usar o get que o hibernate vai no banco para carregar a coleção, assim:



o problema de "org.hibernate.HibernateException: cannot simultaneously fetch multiple bags" é porque você está usando como colections, se trocar para Set vai funcionar acredito eu, deixando como eager..rs



[]'s

This message was edited 1 time. Last update was at 24/11/2009 12:05:03


Sun Certified Programmer for Java 1.5
[Email] [MSN]
renato_ramos
JavaGuru
[Avatar]

Membro desde: 07/10/2009 12:04:32
Mensagens: 234
Offline

a opção 2 funcionou.. mas dá pau no resto do programa.. porque eu estou setando ArrayList nas colections na hora de salvar

eu não posso dar get(eu acho)

olha oque eu quero...

eu estou fazendo um metodo pra serializarpara xml o objeto questionario

quando eu carrego ele usando



ele não carrega as bags das questões

assim.. ele não serialziara a coleção tambem ^^'

valeu!

[]'s Renato Ramos
[Email] [MSN]
alberto_ribeiro
JavaEvangelist
[Avatar]

Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline

você poderia trocar de ArrayList para HashSet, ou tem que ser ArrayList mesmo ?

você chama o método que faz find na Questão ele carrega as questoes porém nao carrega as alternativas, depois você pode inicializar as bags dando o get, agora porque você não pode dar um get ???? o get é só para inicializar, depois de inicializar todas você manda serializar...

[]'s

Sun Certified Programmer for Java 1.5
[Email] [MSN]
renato_ramos
JavaGuru
[Avatar]

Membro desde: 07/10/2009 12:04:32
Mensagens: 234
Offline

tentei fazer o get assim



e deu a msm execao

com hashset eu não tentei... como eu usaria ele?


[]'s Renato Ramos
[Email] [MSN]
alberto_ribeiro
JavaEvangelist
[Avatar]

Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline

é o mesmo que ArrayList em relação a metodos(claro que tem diferenças quanto o funcionamento) apenas troque para HashSet e deve ter alguns metodos diferentes, caso algum método não exista de uma procurada sobre HashSet que vai achar muitas coisas e é bem simples...

Sun Certified Programmer for Java 1.5
[Email] [MSN]
renato_ramos
JavaGuru
[Avatar]

Membro desde: 07/10/2009 12:04:32
Mensagens: 234
Offline

alberto muito obrigado mesmo... se nao sabe o quanto eu procurei atraz de uma solução pra isso

hashset funcionou =D

erroneamente falando o hashset é a ArrayList do set? xD


valeeu!

[]'s Renato Ramos
[Email] [MSN]
alberto_ribeiro
JavaEvangelist
[Avatar]

Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline

acho que isso vai te ajudar

http://blog.caelum.com.br/2006/10/04/performance-hashset-em-vez-de-arraylist/

[]'s

Sun Certified Programmer for Java 1.5
[Email] [MSN]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team