Something else came up today with all this transaction and MySQL stuff. Looks like Hibernate updates do not work unless the session is participating in a transaction when using MySQL InnoDB Max with the default isolation level set to READ-COMMITTED or READ-UNCOMITTED. The tricky part is that inserts work fine but updates never get executed. If you tweak the code and add a transaction or use a Spring annotation or proxy to manage the transaction everything starts working quite nicely.