org.hibernate.LazyInitializationException em relacionamento one to many
Postado em
09/05/2012 19:08

0

0
Tenho estas duas classes, bem simples:
class Pesquisa {
Tenant tenant
String titulo
static constraints = {
}
static hasMany = [
questoes: Questao
]
}
class Questao {
static constraints = {
}
String tituloRelatorios
String questao
TipoQuestao tipo
String[] opcoes
}
Abro o grails console e executo este comando:
Pesquisa.get(1)
Funciona e retorna um objeto normalmente... Isso serve para mostrar que o objeto que procuro de fato existe no banco de dados.
Agora se eu faço isso:
Pesquisa.get(1).questoes
Recebo um org.hibernate.LazyInitializationException
Encontrei algumas pessoas sugerindo este workarround:
Pesquisa.withTransaction { status ->
Pesquisa.get(1).questoes
}
Mas também não funcionou.
Alguem já passou por esta situação?
Entendo por que o hibernate joga esta exceção, mas não entendo como se aplica neste caso.
Por acaso o grails implicitamente abre a sessão e fecha logo após o método get? Se sim, como contornar isto?
Tags:
hibernate one-to-many
Magno Machado Paulo
Pontos: 22