Få alle data fra en tabell med dvalemodus

1. Oversikt

I denne raske opplæringen vil vi se på hvordan du får all data fra en tabell med Hibernate ved hjelp av JPQL eller Criteria API.

JPQL gir oss en raskere og enklere implementering mens bruk av Criteria API er mer dynamisk og robust.

2. JPQL

JPQL gir en enkel og grei måte å få alle enheter fra et bord.

La oss se hvordan det kan se ut å hente alle studenter fra en tabell ved hjelp av JPQL:

public List findAllStudentsWithJpql () {return session.createQuery ("SELECT a FROM Student a", Student.class) .getResultList (); } 

Våre dvaleøkt er createQuery () metoden mottar en skrevet spørringsstreng som det første argumentet og enhetens type som det andre. Vi utfører spørringen med en samtale til getResultList () metode som returnerer resultatene som skrevet Liste.

Enkelhet er fordelen med denne tilnærmingen. JPQL er veldig nær SQL, og er derfor lettere å skrive og forstå.

3. Kriterier API

Criteria API gir en dynamisk tilnærming for å bygge JPA-spørsmål.

Det lar oss bygge spørsmål ved å instantiere Java-objekter som representerer spørreelementer. Og det er en renere løsning hvis spørringer er konstruert fra mange valgfrie felt fordi det eliminerer mange streng sammenkoblinger.

Vi så nettopp et utvalgte spørsmål ved hjelp av JPQL. La oss ta en titt på dets ekvivalente ved hjelp av Criteria API:

public List findAllStudentsWithCriteriaQuery () {CriteriaBuilder cb = session.getCriteriaBuilder (); CriteriaQuery cq = cb.createQuery (Student.class); Root rootEntry = cq.from (Student.class); CriteriaQuery all = cq.select (rootEntry); TypedQuery allQuery = session.createQuery (alle); returner allQuery.getResultList (); } 

Først får vi en CriteriaBuilder som vi bruker til å lage en maskinskrevet KriterierSpørsmål. Senere setter vi rotoppføringen for spørringen. Og til slutt, vi utfører det med en getResultList () metode.

Nå er denne tilnærmingen lik den vi gjorde tidligere. Men det gir oss full tilgang til Java-språket for å artikulere større nyanser i formuleringen av spørringen.

I tillegg til å være like, er JPQL-spørsmål og JPA-kriteriebaserte spørsmål like effektive.

4. Konklusjon

I denne artikkelen demonstrerte vi hvordan du får alle enheter fra en tabell ved hjelp av JPQL eller Criteria API.

Den komplette kildekoden for eksemplet er tilgjengelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found