Domain models and metadata - Managing data - Working with detached state

4 belangrijke vragen over Domain models and metadata - Managing data - Working with detached state

Wat is een losgekoppelde instantie ?

Als een referentie de scope van gegarandeerde identiteit verlaat, noemen we het een referentie naar een losgekoppelde entiteitsinstantie. Wanneer de persistentiecontext wordt gesloten, biedt deze niet langer een identiteits-mappingsservice.

Hoe wordt identiteit bepaalt in de persistentiecontext ?

Als we gegevens opzoeken met dezelfde database-identificatiewaarde in dezelfde persistentiecontext, is het resultaat twee verwijzingen naar dezelfde in-memory instantie op de JVM heap. Wanneer verschillende verwijzingen worden verkregen uit dezelfde persistentiecontext, hebben ze dezelfde Java-identiteit. De verwijzingen kunnen gelijk zijn omdat standaard equals() vertrouwt op Java-identiteitsvergelijking. Ze hebben uiteraard dezelfde database-identiteit. Ze verwijzen naar dezelfde instantie, in een persistente staat, beheerd door de persistentiecontext voor die eenheid van werk.

Wat is de aanbevolen methode om equals en hashcode toe te passen om entiteiten te onderscheiden ?


Zeker geen identiteiten vergelijken als we van vluchtig naar persistent gaan worden de identiteiten toegewezen dus veranderen ze de hashcode en het Set contract wordt verbroken.
Een zakelijke sleutel is een eigenschap of een combinatie van eigenschappen die uniek is voor elke instantie met dezelfde database-identiteit. Deze wordt aanbevolen.
  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Hoe koppel je handmatig een entiteit los van de persistentiecontext?

em.detach(user)

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