Tänk på Hibernate som en stor cache som kan använd en DB som en "butik" där den lägger saker som inte passar in i cachen längre. Hibernate kommer inte att spola allt till DB när du ändrar det, det kommer att vänta. Chansen är stor att du kan ändra mer än ett enda fält i ett objekt.
Så du måste spola sessionen (em.flush()
), eller så måste du köra en fråga, eller så måste du utföra den aktuella transaktionen (inte ett lätt alternativ när du använder Spring).