Erro em Mapeamento um para muitos

olá Pessoal.

o problema é o seguinte

tenho um mateamento one-to-many ente estados e cidades;

<set name="cidades" table="cidades" inverse="true" lazy="true"> <key column="Uf_ID"/> <one-to-many class="Banco.Bean.Cidade"/> </set>
desta forma que está se eu for buscar apenas os estador tranquilo porém o problema é quando eu tento recuperar as cidades de um estado
o sequinte erro é apresentado:

2701 [main] ERROR org.hibernate.LazyInitializationException - failed to lazily initialize a collection of role: Banco.Bean.Uf.cidades, no session or session was closed org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Banco.Bean.Uf.cidades, no session or session was closed at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380) at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365) at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108) at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:186) at NewClass.main(NewClass.java:46) Exception in thread "main" org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Banco.Bean.Uf.cidades, no session or session was closed at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380) at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365) at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108) at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:186) at NewClass.main(NewClass.java:46) Java Result: 1

caso eu mude o lazy para false funciona mas fica muito lento pois ele busca todas as cidades de todos os estados mesmo que eu não necessite;

Alguém pode me ajudar??

Vamos la… O problema não está no mapeamento, esse relacionamento OneToMany realmente precisa ter seu FetchType setado pra LAZY.

Segue um texto falando sobre como resolver isso, do blog do jakefrog

http://uaihebert.com/?p=1367

Mas eu sugiro fortemente que você entenda o erro, entenda o por que da sua lista não estar inicializada, as vantagens disso e os cuidados a a serem tomados.

Segue um outro post do Paulo Silveira sobre o assunto.

Eu sei que com esses 2 posts você vai “resolver” seu problema, pois existem muitas “receitinhas prontas” para tratar isso, mas por favor, entenda o que fez. :slight_smile:

digaoneves muito obrigado.

Realmente consegui entender o porque do erro e resolve-lo

Eu estava procurando o erro no lugar errado pois não conheço muito ainda, pois estou apenas começando :slight_smile:

Obrigado pela ajuda :smiley:

[quote=digaoneves]Vamos la… O problema não está no mapeamento, esse relacionamento OneToMany realmente precisa ter seu FetchType setado pra LAZY.

Segue um texto falando sobre como resolver isso, do blog do jakefrog

http://uaihebert.com/?p=1367

Mas eu sugiro fortemente que você entenda o erro, entenda o por que da sua lista não estar inicializada, as vantagens disso e os cuidados a a serem tomados.

Segue um outro post do Paulo Silveira sobre o assunto.

Eu sei que com esses 2 posts você vai “resolver” seu problema, pois existem muitas “receitinhas prontas” para tratar isso, mas por favor, entenda o que fez. :)[/quote]

caracaaaaaaaaaaaaaaaa Digão… arregaçou com esses 2 links ai en… valeu meeeeesmo :smiley: