Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Arbete med ORM: JPA och Hibernate | Arbete med Databaser
Spring Boot Backend

bookArbete med ORM: JPA och Hibernate

Som du redan vet, är Object-Relational Mapping (ORM) en teknik som möjliggör för utvecklare att interagera med en databasobjektnivå istället för genom SQL-frågor.

I grund och botten är ORM ett koncept som möjliggör att ett Java-objekt kan representeras som data i en databas (och tvärtom). Det implementeras i form av Java Persistence API (JPA)-specifikationen.

JPA

Exempel från verkliga livet

Föreställ dig att JPA är som en standard för eluttag i olika länder. Denna standard definierar hur ett uttag ska se ut och vilka specifikationer det måste följa så att enheter kan anslutas till det.

Dock tillverkar inte standarden själv uttagen. För att faktiskt använda dem behöver du tillverkare som implementerar denna standard. De skapar de faktiska uttagen som uppfyller kraven.

Huvudkomponenter i JPA

JPA-komponenter är nyckelelement som samarbetar för att tillhandahålla funktionalitet för att interagera med en databas.

Vi kommer att utforska dessa komponenter genom verkliga exempel för att hjälpa dig att bättre associera dem för framtida användning.

Entitet

Låt oss påminna oss vad en entitet är. En entitet är en klass i din kod som representerar en tabell i databasen. Till exempel beskriver klassen User vilken användarrelaterad data vi lagrar.

Föreställ dig det som ett visitkort. Kortet innehåller en persons namn, befattning och kontaktinformation. I JPA beskriver en entitetsklass alla viktiga egenskaper hos ett objekt, precis som ett visitkort beskriver en person.

EntityManager

I JPA utför EntityManager operationer såsom lägg till, uppdatera eller ta bort poster, och hanterar alla dessa åtgärder.

EntityManager ansvarar för att hantera livscykeln för entiteter (objekt) och deras interaktion med databasen.

Huvudsakliga metoder

Så här använder du EntityManager i Spring Boot

Persistenskontext

Livscykel för entiteter

  • Transient: Entiteten har precis skapats men har inte ännu sparats i databasen;
  • Managed: Entiteten har sparats i databasen och hanteras av EntityManager. Alla ändringar spåras automatiskt;
  • Detached: Entiteten var tidigare hanterad, men persistenskontexten har stängts eller EntityManager har rensats. Ändringar i detta tillstånd spåras inte automatiskt;
  • Removed: Entiteten har markerats för borttagning från databasen.

När EntityManager skapar eller hittar en entitet, placeras denna entitet i persistenskontexten.

Alla ändringar som görs på den hanterade entiteten spåras automatiskt, och vid slutförandet av transaktionen synkroniseras dessa ändringar med databasen.

JPQL (Java Persistence Query Language)

I JPQL skrivs frågor för att hitta eller modifiera data i databasen med en objektorienterad stil.

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

I JPQL arbetar vi inte direkt med tabell- och kolumnnamn. Istället refererar vi till Category-klassen och dess fält title, vilket gör frågan lättare att förstå för Java-utvecklare. JPQL abstraherar bort den underliggande databasstrukturen och låter dig fokusera på den objektorienterade modellen.

Hibernate

Till exempel kan Hibernate automatiskt generera och uppdatera databastabeller baserat på dina entiteter (klasser).

Hibernate innehåller cache-mekanismer som gör det möjligt att lagra ofta använd data i minnet, vilket minskar antalet förfrågningar till databasen och snabbar upp applikationens prestanda.

1. Vad är JPA?

2. Vilket gränssnitt i JPA används för att utföra operationer på entiteter?

question mark

Vad är JPA?

Select the correct answer

question mark

Vilket gränssnitt i JPA används för att utföra operationer på entiteter?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 3.45

bookArbete med ORM: JPA och Hibernate

Svep för att visa menyn

Som du redan vet, är Object-Relational Mapping (ORM) en teknik som möjliggör för utvecklare att interagera med en databasobjektnivå istället för genom SQL-frågor.

I grund och botten är ORM ett koncept som möjliggör att ett Java-objekt kan representeras som data i en databas (och tvärtom). Det implementeras i form av Java Persistence API (JPA)-specifikationen.

JPA

Exempel från verkliga livet

Föreställ dig att JPA är som en standard för eluttag i olika länder. Denna standard definierar hur ett uttag ska se ut och vilka specifikationer det måste följa så att enheter kan anslutas till det.

Dock tillverkar inte standarden själv uttagen. För att faktiskt använda dem behöver du tillverkare som implementerar denna standard. De skapar de faktiska uttagen som uppfyller kraven.

Huvudkomponenter i JPA

JPA-komponenter är nyckelelement som samarbetar för att tillhandahålla funktionalitet för att interagera med en databas.

Vi kommer att utforska dessa komponenter genom verkliga exempel för att hjälpa dig att bättre associera dem för framtida användning.

Entitet

Låt oss påminna oss vad en entitet är. En entitet är en klass i din kod som representerar en tabell i databasen. Till exempel beskriver klassen User vilken användarrelaterad data vi lagrar.

Föreställ dig det som ett visitkort. Kortet innehåller en persons namn, befattning och kontaktinformation. I JPA beskriver en entitetsklass alla viktiga egenskaper hos ett objekt, precis som ett visitkort beskriver en person.

EntityManager

I JPA utför EntityManager operationer såsom lägg till, uppdatera eller ta bort poster, och hanterar alla dessa åtgärder.

EntityManager ansvarar för att hantera livscykeln för entiteter (objekt) och deras interaktion med databasen.

Huvudsakliga metoder

Så här använder du EntityManager i Spring Boot

Persistenskontext

Livscykel för entiteter

  • Transient: Entiteten har precis skapats men har inte ännu sparats i databasen;
  • Managed: Entiteten har sparats i databasen och hanteras av EntityManager. Alla ändringar spåras automatiskt;
  • Detached: Entiteten var tidigare hanterad, men persistenskontexten har stängts eller EntityManager har rensats. Ändringar i detta tillstånd spåras inte automatiskt;
  • Removed: Entiteten har markerats för borttagning från databasen.

När EntityManager skapar eller hittar en entitet, placeras denna entitet i persistenskontexten.

Alla ändringar som görs på den hanterade entiteten spåras automatiskt, och vid slutförandet av transaktionen synkroniseras dessa ändringar med databasen.

JPQL (Java Persistence Query Language)

I JPQL skrivs frågor för att hitta eller modifiera data i databasen med en objektorienterad stil.

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

I JPQL arbetar vi inte direkt med tabell- och kolumnnamn. Istället refererar vi till Category-klassen och dess fält title, vilket gör frågan lättare att förstå för Java-utvecklare. JPQL abstraherar bort den underliggande databasstrukturen och låter dig fokusera på den objektorienterade modellen.

Hibernate

Till exempel kan Hibernate automatiskt generera och uppdatera databastabeller baserat på dina entiteter (klasser).

Hibernate innehåller cache-mekanismer som gör det möjligt att lagra ofta använd data i minnet, vilket minskar antalet förfrågningar till databasen och snabbar upp applikationens prestanda.

1. Vad är JPA?

2. Vilket gränssnitt i JPA används för att utföra operationer på entiteter?

question mark

Vad är JPA?

Select the correct answer

question mark

Vilket gränssnitt i JPA används för att utföra operationer på entiteter?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 4
some-alt