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

bookArbeide med ORM: JPA og Hibernate

Som du allerede vet, er Object-Relational Mapping (ORM) en teknologi som gjør det mulig for utviklere å samhandle med en databaseobjektnivå i stedet for gjennom SQL-spørringer.

I hovedsak er ORM et konsept som gjør det mulig å representere et Java-objekt som data i en database (og omvendt). Det er implementert i form av spesifikasjonen Java Persistence API (JPA).

JPA

Virkelighetseksempel

Tenk deg at JPA er som en standard for elektriske stikkontakter i ulike land. Denne standarden definerer hvordan en stikkontakt skal se ut og hvilke spesifikasjoner den må følge slik at enheter kan kobles til.

Men selve standarden produserer ikke stikkontaktene. For å faktisk bruke dem, trenger du produsenter som implementerer denne standarden. De lager de faktiske stikkontaktene som oppfyller kravene.

Hovedkomponenter i JPA

JPA-komponenter er sentrale elementer som arbeider sammen for å gi funksjonalitet for samhandling med en database.

Vi skal utforske disse komponentene gjennom virkelige eksempler for å hjelpe deg å assosiere dem for fremtidig bruk.

Entitet

La oss minne oss på hva en entitet er. En entitet er en klasse i koden din som representerer en tabell i databasen. For eksempel beskriver User-klassen hvilke brukerrelaterte data vi lagrer.

Tenk på det som et visittkort. Kortet inneholder en persons navn, stillingstittel og kontaktinformasjon. I JPA beskriver en entitetsklasse alle de viktige egenskapene til et objekt, akkurat som et visittkort beskriver en person.

EntityManager

I JPA utfører EntityManager operasjoner som legge til, oppdatere eller slette poster, og håndterer alle disse handlingene.

EntityManager har ansvaret for håndtering av livssyklusen til entiteter (objekter) og deres interaksjon med databasen.

Hovedmetoder

Slik bruker du EntityManager i Spring Boot

Persistens-kontekst

Livssyklus for entiteter

  • Transient: Entiteten er nettopp opprettet, men er ikke ennå lagret i databasen;
  • Managed: Entiteten er lagret i databasen og blir administrert av EntityManager. Alle endringer spores automatisk;
  • Detached: Entiteten var tidligere administrert, men persistens-konteksten er lukket eller EntityManager er tømt. Endringer i denne tilstanden spores ikke automatisk;
  • Removed: Entiteten er markert for sletting fra databasen.

Når EntityManager oppretter eller finner en entitet, plasseres denne entiteten i persistenskonteksten.

Alle endringer gjort på den administrerte entiteten spores automatisk, og ved fullføring av transaksjonen blir disse endringene synkronisert med databasen.

JPQL (Java Persistence Query Language)

I JPQL skrives spørringer for å finne eller endre data i databasen ved bruk av en objektorientert stil.

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

I JPQL arbeider vi ikke direkte med tabell- og kolonnenavn. I stedet refererer vi til Category-klassen og dens title-felt, noe som gjør spørringen enklere å forstå for Java-utviklere. JPQL abstraherer bort den underliggende databasestrukturen, slik at du kan fokusere på det objektorienterte modell.

Hibernate

For eksempel kan Hibernate automatisk generere og oppdatere databasetabeller basert på dine entiteter (klasser).

Hibernate inkluderer cache-mekanismer som gjør at ofte brukte data kan lagres i minnet, noe som reduserer antall forespørsler til databasen og øker applikasjonens ytelse.

1. Hva er JPA?

2. Hvilket grensesnitt i JPA brukes for å utføre operasjoner på entiteter?

question mark

Hva er JPA?

Select the correct answer

question mark

Hvilket grensesnitt i JPA brukes for å utføre operasjoner på entiteter?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

What are the main differences between JPA and Hibernate?

Can you explain more about how the EntityManager works?

How does JPQL differ from regular SQL?

Awesome!

Completion rate improved to 3.45

bookArbeide med ORM: JPA og Hibernate

Sveip for å vise menyen

Som du allerede vet, er Object-Relational Mapping (ORM) en teknologi som gjør det mulig for utviklere å samhandle med en databaseobjektnivå i stedet for gjennom SQL-spørringer.

I hovedsak er ORM et konsept som gjør det mulig å representere et Java-objekt som data i en database (og omvendt). Det er implementert i form av spesifikasjonen Java Persistence API (JPA).

JPA

Virkelighetseksempel

Tenk deg at JPA er som en standard for elektriske stikkontakter i ulike land. Denne standarden definerer hvordan en stikkontakt skal se ut og hvilke spesifikasjoner den må følge slik at enheter kan kobles til.

Men selve standarden produserer ikke stikkontaktene. For å faktisk bruke dem, trenger du produsenter som implementerer denne standarden. De lager de faktiske stikkontaktene som oppfyller kravene.

Hovedkomponenter i JPA

JPA-komponenter er sentrale elementer som arbeider sammen for å gi funksjonalitet for samhandling med en database.

Vi skal utforske disse komponentene gjennom virkelige eksempler for å hjelpe deg å assosiere dem for fremtidig bruk.

Entitet

La oss minne oss på hva en entitet er. En entitet er en klasse i koden din som representerer en tabell i databasen. For eksempel beskriver User-klassen hvilke brukerrelaterte data vi lagrer.

Tenk på det som et visittkort. Kortet inneholder en persons navn, stillingstittel og kontaktinformasjon. I JPA beskriver en entitetsklasse alle de viktige egenskapene til et objekt, akkurat som et visittkort beskriver en person.

EntityManager

I JPA utfører EntityManager operasjoner som legge til, oppdatere eller slette poster, og håndterer alle disse handlingene.

EntityManager har ansvaret for håndtering av livssyklusen til entiteter (objekter) og deres interaksjon med databasen.

Hovedmetoder

Slik bruker du EntityManager i Spring Boot

Persistens-kontekst

Livssyklus for entiteter

  • Transient: Entiteten er nettopp opprettet, men er ikke ennå lagret i databasen;
  • Managed: Entiteten er lagret i databasen og blir administrert av EntityManager. Alle endringer spores automatisk;
  • Detached: Entiteten var tidligere administrert, men persistens-konteksten er lukket eller EntityManager er tømt. Endringer i denne tilstanden spores ikke automatisk;
  • Removed: Entiteten er markert for sletting fra databasen.

Når EntityManager oppretter eller finner en entitet, plasseres denne entiteten i persistenskonteksten.

Alle endringer gjort på den administrerte entiteten spores automatisk, og ved fullføring av transaksjonen blir disse endringene synkronisert med databasen.

JPQL (Java Persistence Query Language)

I JPQL skrives spørringer for å finne eller endre data i databasen ved bruk av en objektorientert stil.

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

I JPQL arbeider vi ikke direkte med tabell- og kolonnenavn. I stedet refererer vi til Category-klassen og dens title-felt, noe som gjør spørringen enklere å forstå for Java-utviklere. JPQL abstraherer bort den underliggende databasestrukturen, slik at du kan fokusere på det objektorienterte modell.

Hibernate

For eksempel kan Hibernate automatisk generere og oppdatere databasetabeller basert på dine entiteter (klasser).

Hibernate inkluderer cache-mekanismer som gjør at ofte brukte data kan lagres i minnet, noe som reduserer antall forespørsler til databasen og øker applikasjonens ytelse.

1. Hva er JPA?

2. Hvilket grensesnitt i JPA brukes for å utføre operasjoner på entiteter?

question mark

Hva er JPA?

Select the correct answer

question mark

Hvilket grensesnitt i JPA brukes for å utføre operasjoner på entiteter?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4
some-alt