Il codice sembra corretto. Puoi anche evitare di chiamare il metodo
flush() (che viene chiamato quando committi) e forse anche la clear, tanto
la sessione l'hai appena aperta.
Hai visto se c'è qualche errore nella stringa sql che genera hibernate?