Məzmuna keç

Java Persistence Query Language

Vikipediya, azad ensiklopediya
Java Persistence Query Language
Yaradılma tarixi 2009
Təsirlənib SQL
eclipse-ee4j.github.io/j…

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.

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'