ZAWWW-2st1.2-w05.tresc-1.0--Slajd35
Zapytanie nazwane - Przykład
Slajd pokazuje przykład definicji i wykonania sparametryzowanego nazwanego zapytania sformułowanego w języku JPQL. Zapytanie umożliwia wyszukanie wszystkich obiektów Blad, których atrybut „opis” zawiera słowo kluczowe podane jako nazwany parametr „:keyword”.
Zapytania nazwane są definiowane za pomocą adnotacji @NamedQuery. Gdy klasa encji zawiera definicje kilku zapytań nazwanych, są one zgrupowane w adnotacji @NamedQueries. Fragment kodu u góry slajdu pokazuje definicję w klasie Blad nazwanego zapytania o nazwie „findByKeyword” i treści zawierającej nazwany parametr „:keyword”.
Fragment kodu u dołu slajdu pokazuje sposób utworzenia obiektu nazwanego zapytania, a następnie ustawienia wartości parametru i wykonania zapytania. W przykładzie te trzy operacje zostały zawarte w jednej złożonej instrukcji, ale mogłyby również zostać rozbite na trzy odrębne instrukcje. Zapytanie nazwane tworzone jest metodą createNamedQuery() obiektu EntityManager, której parametrem jest nazwa zapytania nazwanego, podana w adnotacji @NamedQuery w klasie encji. Do ustawienia wartości parametru sparametryzowanego zapytania (tworzonego jako nazwane lub dynamiczne) służy metoda setParameter() obiektu Query.