Olá a todos! 
Questão rápida: Em quais operações (insert, update, delete, select) implementadas usando os objetos do Hibernate deve-se usar o session.flush() ?
Este método funciona como um tipo de commit ou possui alguma outra função?
Mui grato.
Olá a todos! 
Questão rápida: Em quais operações (insert, update, delete, select) implementadas usando os objetos do Hibernate deve-se usar o session.flush() ?
Este método funciona como um tipo de commit ou possui alguma outra função?
Mui grato.
o hibernate só manda tudo pra base quando vc fecha a session… ou faz session.conection.commit…
entao digamos que vc fez varios inserts, deletes… etc… o hibernate nao vai fazer nada até vc fazer session.close()…
entao o flush() server para o hibernate sincronizar o estado atual dos objetos com o banco, antes de fazer session.close
OK, mas então o session.flush() só deverá ser utilizado nas operações de insert/update/delete, pois envolvem comitar o banco? Ou também nas operações de retrieve?
pode em qualquer caso…mas o flush diz para o hibernate: “execute os SQL ´s que estão na fila agora :-)”…
no caso de recuperar um objeto do banco, por exemplo…
Usuario usuario = session.load(10)
usuario.setNome(“outro nome”)
Sabe que no fim das contas o hibernate vai fazer um update., pq vc alterou o nome. Mas ele só faz isso no fim da transação. Para fazer agora basta chamar o session.flush…
Entao o flush é mais para insert, delete, cascade… pq SELECT sempre é na hora… a não ser que venha aquela outra história de lazy=true, proxies, etc…