Transaction no Hibernate

Senhores,

  O cenário é o seguinte: uma classe que lê algumas tabelas de configuração do

banco; em função dessas configurações faz inserts em uma tabela e após isso,
le os registros da tabela que houve os inserts e gera um arquivo
texto formata ainda de acordo com um punhado de configuração.

 Como é um processo longo e dependente de configuração a chance de alguma 

estar errada durante é grande.

 Portanto, pretendia  criar uma transaction no inicio do processo; colocar vários

rollbacks em pontos de erro com um commit no final.

 Me surpreendi ao ver que o select não retorna os registros que acabaram de ser

inseridos mesmo estando na mesma sessão dentro da mesma transação antes do
commit.

Onde esta o Wally?

Grato a quem puder responder.

Reginaldo

Então??

Esta certo? É isso mesmo? Isto é uma característica do Hibernate ou perdi alguma coisa?

Se executarmos o código:

org.hibernate.Transaction tr = sessao.beginTransaction();

MyTabela tab = new MyTabela();
tab.setCdCampo(10);

session().save(tab);

e depois fizermos o select assim:

qry = session().createSQLQuery(“SELECT * FROM MyTabela”).list();

qry.size() retornará 0

se commitar

tr.commit();

e executarmos o select novamente os registros aparecem.

O que esta errado no procedimento?

Grato.

Reginaldo

Experimente um session.flush() após a execução do select.
Abraço!