Java Persistence Query Language

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 11. huhtikuuta 2015 tarkistetusta versiosta . tarkastukset vaativat 3 muokkausta .
Java Persistence Query Language
Kieliluokka kyselyn kieli
Esiintyi 2009
Vaikutettu SQL
Verkkosivusto eclipse-ee4j.github.io/… ​(  englanti)
eclipse-ee4j.github.io/…

Java Persistence Query Language ( JPQL ) on alustasta riippumaton oliopohjainen kyselykieli , joka on osa Java Persistence API (JPA) -spesifikaatiota.

JPQL:ää käytetään kyselyjen kirjoittamiseen relaatiotietokantaan tallennettuihin entiteeteihin. JPQL on monella tapaa samanlainen kuin SQL , mutta toisin kuin jälkimmäinen, se toimii JPA-yksiköitä vastaan ​​tehdyillä kyselyillä, toisin kuin suorilla kyselyillä tietokantataulukoita vastaan.

Objektien ( SELECT-kyselyt) hankkimisen lisäksi JPQL tukee kyselyitä, jotka perustuvat - UPDATEja -operaattoreihin DELETE.

Esimerkkejä

Oletetaan, että meillä on JPA-entiteetit, jotka on määritelty seuraavasti (ominaisuuksien setter- ja getter-menetelmät on jätetty pois yksinkertaisuuden vuoksi):

@Entity public class Tekijä { @Id yksityinen kokonaislukutunnus ; _ yksityinen merkkijono etunimi ; yksityinen merkkijono sukunimi ; @ManyToMany yksityinen luettelo < Kirja > kirjat ; } @Entity public class Kirja { @Id yksityinen kokonaislukutunnus ; _ yksityinen merkkijono otsikko ; yksityinen merkkijono isbn ; @ManyToOne yksityinen julkaisija ; _ @ManyToMany yksityinen luettelo < Kirjoittaja > kirjoittajat ; } @Entity public class Publisher { @Id yksityinen kokonaislukutunnus ; _ yksityinen merkkijononimi ; _ yksityinen merkkijonoosoite ; _ @OneToMany ( mappedBy = "julkaisija" ) yksityinen Luettelo < Kirja > kirjat ; }

Seuraava kysely palauttaa luettelon kirjoittajista aakkosjärjestyksessä:

VALITSE LÄHESTÄ Tee TILAUKS . _ _ _ _ etunimi , a . sukunimi

Pyydä luettelo XYZ Pressin koskaan julkaisemista kirjoittajista:

VALITSE EROTTAA a Kirjoittaa SISÄINEN LIITY a . _ _ kirjat b MISSÄ b . kustantaja . nimi = 'XYZ Press'

JPQL tukee nimettyjä parametreja, jotka alkavat kaksoispisteellä (:). Funktio, joka palauttaa luettelon kirjoittajista tietyllä sukunimellä, näyttää tältä:

tuonti javax.persistence.EntityManager ; tuonti javax.persistence.Query ; ... @SuppressWarnings ( "valitsematon" ) public List < Tekijä > getAuthorsByLastName ( String sukunimi ) { String queryString = "VALITSE Tekijästä a " + "WHERE LOWER(a.sukunimi) = :sukunimi" ; Kyselykysely = getEntityManager ( ). createQuery ( queryString ); kysely . setParameter ( "sukunimi" , sukunimi.pieniin kirjaimiin ( ) ); paluukysely . _ getResultList (); }

Hibernate Query Language

JPQL perustuu Hibernate Query Language (HQL) -kyselykieleen, joka on aikaisempi ei-standardoitu kyselykieli, joka sisältyy Hibernate -objektien relaatiokartoituskirjastoon .

Hibernate ja HQL luotiin ennen JPA:n määrittelyn tuloa. JPQL on HQL-kyselykielen osajoukko.

Katso myös

Linkit