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…
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!