Tenho um projeto usando o JBoss 3.0.6 que tem 2 entity beans com uma relacacao CMR many to many. Eu estou tentando usar esses entity beans num Stateful Session Bean, com Bean Managed Transaction. O que estou tentando fazer eh isso:
- Pegar e comecar uma UserTransaction
- Procurar dois entity
- Fazer uma relacao entre ambos
- Realizar a chamada JDBC. direta, por um DAO na tabela CMR (many to many)
- commitar
Estou usando BMT porque estas operacoes ocorrem entre metodos.
No item 4 acontece o problema. O ResultSet nao tem a, aplicado a base, a relacao criada. A conexao esta na mesma transacao. Eu comecei a investigar o problema, usando um logger sql (p6spy) e descobri que o INSERT eh gerado somente quando vou comitar a transacao.
Fiz uma pesquisa e descobri que se usar um parametro commit-option e usar jdbc diretamente era resultar em um estado de base inconsistente. Coloquei entao em modo C e o problema persistiu. Coloquei tambem uma opcao chamada sync-on-commit-only para false. O INSERT eh gerado somente no commit. I preciso que ele seja gerado antes, para que a chamada JDBC consiga pegar os dados corretos da tabela de relacao.
Alguem tem ideia de como resolver esse problema?