Få alle data fra en tabel med dvale

1. Oversigt

I denne hurtige vejledning ser vi på, hvordan man får alle data fra en tabel med dvale ved hjælp af JPQL eller Criteria API.

JPQL giver os en hurtigere og enklere implementering, mens brug af Criteria API er mere dynamisk og robust.

2. JPQL

JPQL giver en enkel og ligetil måde at få alle enheder fra en tabel.

Lad os se, hvordan det kan se ud at hente alle studerende fra en tabel ved hjælp af JPQL:

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

Vores dvale-sessioner createQuery () metode modtager en indtastet forespørgselsstreng som det første argument og enhedens type som det andet. Vi udfører forespørgslen med et opkald til getResultList () metode, der returnerer resultaterne som indtastet Liste.

Enkelhed er fordelen ved denne tilgang. JPQL er meget tæt på SQL og er derfor lettere at skrive og forstå.

3. Kriterier API

Criteria API giver en dynamisk tilgang til opbygning af JPA-forespørgsler.

Det giver os mulighed for at oprette forespørgsler ved at instantere Java-objekter, der repræsenterer forespørgselselementer. Og det er en renere løsning, hvis forespørgsler er konstrueret fra mange valgfrie felter, fordi det eliminerer en masse streng sammenkædninger.

Vi har lige set en forespørgsel, der alle vælger ved hjælp af JPQL. Lad os se på dets ækvivalent ved hjælp af Criteria API:

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

Først får vi en CriteriaBuilder som vi bruger til at oprette en indtastet KriterierForespørgsel. Senere indstillede vi forespørgslens rodindgang. Og endelig udfører vi det med en getResultList () metode.

Nu ligner denne tilgang den, vi gjorde tidligere. Men det giver os fuld adgang til Java-sproget for at artikulere større nuance i formuleringen af ​​forespørgslen.

Ud over at være ens er JPQL-forespørgsler og JPA-kriteriebaserede forespørgsler lige så effektive.

4. Konklusion

I denne artikel demonstrerede vi, hvordan man får alle enheder fra en tabel ved hjælp af JPQL eller Criteria API.

Den komplette kildekode til eksemplet er tilgængelig på GitHub.


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