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.
| Java Persistence Query Language | |
|---|---|
| Yaradılma tarixi | 2009 |
| Təsirlənib | SQL |
| eclipse-ee4j.github.io/j… | |
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'