Stellen Sie sich Hibernate als einen großen Cache vor, der kann Verwenden Sie eine DB als "Speicher", wo sie Dinge ablegt, die nicht mehr in den Cache passen. Hibernate wird nicht alles in die DB spülen, wenn Sie es ändern, es wird warten. Es besteht die Möglichkeit, dass Sie mehr als ein einzelnes Feld in einem Objekt ändern.
Sie müssen also die Sitzung leeren (em.flush()
), oder Sie müssen eine Abfrage ausführen oder die aktuelle Transaktion festschreiben (keine einfache Option, wenn Sie Spring verwenden).