Problemas no mapeamento por causa do CGLibs

Pessoal, o seguinte.

Implementei um modelo de controle transacional do hibernate que está disponível aqui no GUJ, vejam. O Problema, é que meu objeto persistente deixa de ser Model.Grupo por exemplo, e passa a ser Model.Grupo$$Enhancer$$ por causa da utilização do CGLibs para monitorar a execução de bytecode.
Resultado: na hora de persistir os dados, recebo uma MappingException dizendo que a classe Model.Grupo$$Enhancer$$ nao está mapeado. E claro, essa classe nao existe.

Alguém tem algum palpite?

É porque você está anotando como transacional um método de uma classe persistida pelo Hibernate. Aí realmente dá problema.

O ideal é você ter uma interface de serviço e colocar as anotações em seus métodos.

Olá Davi.

Refiz meu modelo da forma que você disse. E realmente deixei de ter aquele MappingException.

O estranho agora, é que tudo (aparentemente) ocorre sem problema. Exceto o dado ser persistido no BD. Da forma que entendi seu artigo, acompanhei toda a execuçào dos métodos. Ele é verificado como transacional, é supostamente persistindo, tanto que nao é feita um rollback, nao retorna nenhum erro nem exceção. Tanto que esse é o log gerado.

2006-10-25 15:15:31,500 DEBUG hibernate.impl.SessionImpl  -> opened session at timestamp: 4758733338624000
2006-10-25 15:15:31,968 DEBUG hibernate.engine.IdentifierValue  -> id unsaved-value: 0
2006-10-25 15:15:31,968 DEBUG event.def.AbstractSaveEventListener  -> transient instance of: Model.Grupo
2006-10-25 15:15:31,968 DEBUG event.def.DefaultSaveOrUpdateEventListener  -> saving transient instance
2006-10-25 15:15:31,968 DEBUG hibernate.jdbc.AbstractBatcher  -> opening JDBC connection
2006-10-25 15:15:31,968 DEBUG hibernate.connection.DriverManagerConnectionProvider  -> total checked-out connections: 0
2006-10-25 15:15:31,968 DEBUG hibernate.connection.DriverManagerConnectionProvider  -> using pooled JDBC connection, pool size: 0
2006-10-25 15:15:31,984 DEBUG org.hibernate.SQL  -> select sequence_next_hi_value from hibernate_sequences where sequence_name = 'Grupo' with lock
2006-10-25 15:15:31,984 DEBUG hibernate.id.MultipleHiLoPerTableGenerator  -> new hi value: 20
2006-10-25 15:15:31,984 DEBUG event.def.AbstractSaveEventListener  -> generated identifier: 655360, using strategy: org.hibernate.id.MultipleHiLoPerTableGenerator
2006-10-25 15:15:31,984 DEBUG event.def.AbstractSaveEventListener  -> saving [Model.Grupo#655360]
2006-10-25 15:15:32,000 DEBUG hibernate.engine.Cascade  -> processing cascade ACTION_SAVE_UPDATE for: Model.Grupo
2006-10-25 15:15:32,000 DEBUG hibernate.engine.Cascade  -> done processing cascade ACTION_SAVE_UPDATE for: Model.Grupo
2006-10-25 15:15:32,031 DEBUG hibernate.engine.Cascade  -> processing cascade ACTION_SAVE_UPDATE for: Model.Grupo
2006-10-25 15:15:32,031 DEBUG hibernate.engine.Cascade  -> done processing cascade ACTION_SAVE_UPDATE for: Model.Grupo
2006-10-25 15:15:32,031 DEBUG hibernate.impl.SessionImpl  -> closing session
2006-10-25 15:15:32,031 DEBUG hibernate.jdbc.ConnectionManager  -> connection already null in cleanup : no action

Mas quando vou até o banco. Nao tem nada… :smiley:

Até verifiquei se não estava abrindo o banco errado. Mas até onde pude verificar, não encontrei nada. Você tem alguma noçào do que pode ser isso?

Muito obrigado novamente!