Domain models and metadata - Managing data - The EntityManager interface

5 belangrijke vragen over Domain models and metadata - Managing data - The EntityManager interface

Wat gebeurt met de id van entiteit bij het uitvoeren van remove() ?

Standaard zal Hibernate de identificatiewaarde van een verwijderde entiteitsinstantie niet wijzigen. Als alternatief, als we de eigenschap hibernate.use_identifier_rollback op true instellen in persistence.xml, zal Hibernate de identificatiewaarde resetten na het verwijderen van een entiteitsinstantie. De Item bevindt zich nu in dezelfde toestand als in een vluchtige (transient) toestand, en we kunnen het opnieuw opslaan in een nieuwe persistentiecontext.

Wat gebeurt als je refresh() aanroept op de Entitymanager?

Het aanroepen van refresh() zorgt ervoor dat Hibernate een SELECT uitvoert om een volledige resultaatset te lezen en te marshalen, waarbij wijzigingen die we al hebben aangebracht aan de persistente instantie in de toepassingsgeheugen worden overschreven. Als gevolg daarvan wordt de naam van het item bijgewerkt met de waarde die aan de andere kant is ingesteld. Als de database-rij niet meer bestaat (als iemand deze heeft verwijderd), gooit Hibernate een EntityNotFoundException bij refresh().

Wanner gebruik je replicatie (replicate()) ?

Wanneer we gegevens moeten ophalen uit één database en deze in een andere moeten opslaan. Replicatie neemt losgekoppelde instanties die zijn geladen in één persistentiecontext en maakt ze persistent in een andere persistentiecontext. We openen meestal deze contexten vanuit twee verschillende EntityManagerFactory-configuraties, waardoor twee logische databases worden ingeschakeld. We moeten de entiteit in beide configuraties in kaart brengen.
  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Wanneer synchroniseert Hibernate met de databank ?

Wanneer een gecombineerde Java Transaction API (JTA) systeemtransactie wordt uitgevoerd. Voordat een query wordt uitgevoerd - we bedoelen geen zoekopdracht met find() maar een query met javax.persistence.Query of een vergelijkbare Hibernate API. Wanneer de toepassing flush() expliciet aanroept.

Welke FlushmodeTypes zijn er en wat doen ze ?


Hibernate herkent dat er gegevens zijn gewijzigd in het geheugen en synchroniseert deze wijzigingen met de database voordat de query wordt uitgevoerd. Dit is het gedrag van FlushModeType.AUTO.



Met FlushModeType.COMMIT schakelen we het flushen vóór query's uit, zodat we mogelijk andere gegevens zien die worden geretourneerd door de query dan wat we in het geheugen hebben. De synchronisatie vindt dan alleen plaats wanneer de transactie wordt gecommit.

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo