Java Persistence Query Language

Java Persistence Query Language (JPQL) — obyekt yönümlü sorğu dilidir. Java Persistence API (JPA) spesifikasiyasının bir hissəsidir. Platformadan asılı deyil.

JPQL entity -lər üçün sorğuların yazılmasında istidaə olunur. JPQL SQL bənzəridir, lakin sorğuları JPA entity-ləri əsasında tərtib edir.

 Nümunələr 

Fərz edək ki, aşağıdakı qaydada təyin olunmuş entity -lərimiz var.

@Entity
public class Author {
    @Id
    private Integer id;
    private String firstName;
    private String lastName;

    @ManyToMany
    private List<Book> books;
}

@Entity
public class Book {
    @Id
    private Integer id;
    private String title;
    private String isbn;

    @ManyToOne
    private Publisher publisher;

    @ManyToMany
    private List<Author> authors;
}

@Entity
public class Publisher {
    @Id
    private Integer id;
    private String name;
    private String address;

    @OneToMany(mappedBy = "publisher")
    private List<Book> books;
}

Növbəti sorğu müəlliflərin əlifba sırası ilə siyahısnı almağa imkan verir

SELECT a FROM Author a ORDER BY a.firstName, a.lastName

Bu sorğu isə kitabarı "XYZ Press" nəşriyyatı tərəfindən nə vaxtsa çap olunmuş müəlliflərin siyahısnı almağa imkan verir

SELECT DISTINCT a FROM Author a INNER JOIN a.books b WHERE b.publisher.name = 'XYZ Press'

 İsitnadlar 
 Full Query Language Syntax from The Java EE 5 Tutorial
 JPA Queries and JPQL — a chapter of the ObjectDB Manual
 Type safe Hibernate (HQL) query engine — TorpedoQuery

Kateqoriya:Java proqramlaşdırma dili ailəsi