Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Arbejde med ORM: JPA og Hibernate | Arbejde med Databaser
Spring Boot Backend

bookArbejde med ORM: JPA og Hibernate

Som du allerede ved, er Object-Relational Mapping (ORM) en teknologi, der gør det muligt for udviklere at interagere med en databaseobjektniveau i stedet for gennem SQL-forespørgsler.

I sin essens er ORM et koncept, der gør det muligt at repræsentere et Java-objekt som data i en database (og omvendt). Det implementeres i form af Java Persistence API (JPA)-specifikationen.

JPA

Virkeligt eksempel

Forestil dig, at JPA er som en standard for stikkontakter i forskellige lande. Denne standard definerer, hvordan en stikkontakt skal se ud, og hvilke specifikationer den skal overholde, så enheder kan tilsluttes den.

Dog producerer selve standarden ikke stikkontakterne. For faktisk at kunne bruge dem, har du brug for producenter, der implementerer denne standard. De fremstiller de faktiske stikkontakter, der overholder standarden.

Hovedkomponenter i JPA

JPA-komponenter er nøgleelementer, der arbejder sammen for at levere funktionalitet til interaktion med en database.

Vi vil udforske disse komponenter gennem virkelighedsnære eksempler for at hjælpe dig med bedre at forbinde dem til fremtidig brug.

Entity

Lad os genkalde, hvad en entity er. En entity er en klasse i din kode, der repræsenterer en tabel i databasen. For eksempel beskriver klassen User, hvilke brugerrelaterede data vi gemmer.

Forestil dig det som et visitkort. Kortet indeholder en persons navn, jobtitel og kontaktinformation. I JPA beskriver en entity-klasse alle de vigtige karakteristika ved et objekt, ligesom et visitkort beskriver en person.

EntityManager

I JPA udfører EntityManager operationer såsom tilføjelse, opdatering eller sletning af poster og håndterer alle disse handlinger.

EntityManager er ansvarlig for håndtering af livscyklussen for entiteter (objekter) og deres interaktion med databasen.

Vigtigste metoder

Sådan bruges EntityManager i Spring Boot

Persistence Context

Livscyklus for entiteter

  • Transient: Entiteten er netop oprettet, men er endnu ikke blevet gemt i databasen;
  • Managed: Entiteten er blevet gemt i databasen og administreres af EntityManager. Alle ændringer spores automatisk;
  • Detached: Entiteten var tidligere administreret, men persistence context er blevet lukket, eller EntityManager er blevet ryddet. Ændringer i denne tilstand spores ikke automatisk;
  • Removed: Entiteten er blevet markeret til sletning fra databasen.

Når EntityManager opretter eller finder en entitet, placeres denne entitet i persistence context.

Alle ændringer foretaget på den administrerede entitet spores automatisk, og ved afslutningen af transaktionen bliver disse ændringer synkroniseret med databasen.

JPQL (Java Persistence Query Language)

I JPQL skrives forespørgsler for at finde eller ændre data i databasen ved brug af en objektorienteret tilgang.

SELECT c from Category c WHERE c.title = 'query'

I JPQL arbejder vi ikke direkte med tabel- og kolonnenavne. I stedet refererer vi til Category-klassen og dens title-felt, hvilket gør forespørgslen lettere at forstå for Java-udviklere. JPQL abstraherer den underliggende databasestruktur væk, så du kan fokusere på objektorienteret modellering.

Hibernate

For eksempel kan Hibernate automatisk generere og opdatere database-tabeller baseret på dine entiteter (klasser).

Hibernate indeholder cache-mekanismer, der gør det muligt at gemme ofte anvendte data i hukommelsen, hvilket reducerer antallet af forespørgsler til databasen og forbedrer applikationens ydeevne.

1. Hvad er JPA?

2. Hvilket interface i JPA bruges til at udføre operationer på entiteter?

question mark

Hvad er JPA?

Select the correct answer

question mark

Hvilket interface i JPA bruges til at udføre operationer på entiteter?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 3.45

bookArbejde med ORM: JPA og Hibernate

Stryg for at vise menuen

Som du allerede ved, er Object-Relational Mapping (ORM) en teknologi, der gør det muligt for udviklere at interagere med en databaseobjektniveau i stedet for gennem SQL-forespørgsler.

I sin essens er ORM et koncept, der gør det muligt at repræsentere et Java-objekt som data i en database (og omvendt). Det implementeres i form af Java Persistence API (JPA)-specifikationen.

JPA

Virkeligt eksempel

Forestil dig, at JPA er som en standard for stikkontakter i forskellige lande. Denne standard definerer, hvordan en stikkontakt skal se ud, og hvilke specifikationer den skal overholde, så enheder kan tilsluttes den.

Dog producerer selve standarden ikke stikkontakterne. For faktisk at kunne bruge dem, har du brug for producenter, der implementerer denne standard. De fremstiller de faktiske stikkontakter, der overholder standarden.

Hovedkomponenter i JPA

JPA-komponenter er nøgleelementer, der arbejder sammen for at levere funktionalitet til interaktion med en database.

Vi vil udforske disse komponenter gennem virkelighedsnære eksempler for at hjælpe dig med bedre at forbinde dem til fremtidig brug.

Entity

Lad os genkalde, hvad en entity er. En entity er en klasse i din kode, der repræsenterer en tabel i databasen. For eksempel beskriver klassen User, hvilke brugerrelaterede data vi gemmer.

Forestil dig det som et visitkort. Kortet indeholder en persons navn, jobtitel og kontaktinformation. I JPA beskriver en entity-klasse alle de vigtige karakteristika ved et objekt, ligesom et visitkort beskriver en person.

EntityManager

I JPA udfører EntityManager operationer såsom tilføjelse, opdatering eller sletning af poster og håndterer alle disse handlinger.

EntityManager er ansvarlig for håndtering af livscyklussen for entiteter (objekter) og deres interaktion med databasen.

Vigtigste metoder

Sådan bruges EntityManager i Spring Boot

Persistence Context

Livscyklus for entiteter

  • Transient: Entiteten er netop oprettet, men er endnu ikke blevet gemt i databasen;
  • Managed: Entiteten er blevet gemt i databasen og administreres af EntityManager. Alle ændringer spores automatisk;
  • Detached: Entiteten var tidligere administreret, men persistence context er blevet lukket, eller EntityManager er blevet ryddet. Ændringer i denne tilstand spores ikke automatisk;
  • Removed: Entiteten er blevet markeret til sletning fra databasen.

Når EntityManager opretter eller finder en entitet, placeres denne entitet i persistence context.

Alle ændringer foretaget på den administrerede entitet spores automatisk, og ved afslutningen af transaktionen bliver disse ændringer synkroniseret med databasen.

JPQL (Java Persistence Query Language)

I JPQL skrives forespørgsler for at finde eller ændre data i databasen ved brug af en objektorienteret tilgang.

SELECT c from Category c WHERE c.title = 'query'

I JPQL arbejder vi ikke direkte med tabel- og kolonnenavne. I stedet refererer vi til Category-klassen og dens title-felt, hvilket gør forespørgslen lettere at forstå for Java-udviklere. JPQL abstraherer den underliggende databasestruktur væk, så du kan fokusere på objektorienteret modellering.

Hibernate

For eksempel kan Hibernate automatisk generere og opdatere database-tabeller baseret på dine entiteter (klasser).

Hibernate indeholder cache-mekanismer, der gør det muligt at gemme ofte anvendte data i hukommelsen, hvilket reducerer antallet af forespørgsler til databasen og forbedrer applikationens ydeevne.

1. Hvad er JPA?

2. Hvilket interface i JPA bruges til at udføre operationer på entiteter?

question mark

Hvad er JPA?

Select the correct answer

question mark

Hvilket interface i JPA bruges til at udføre operationer på entiteter?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 4
some-alt