JPA بمنظور تعریف EJBQL های از پیش تعریف شده مکانیزمی را فراهم کرده است که Named Query نام دارد. با این مکانیزم شما می توانید در زمان ساخت query با استفاده از نام Named Query به آن ارجاع بزنید.
به چند دلیل ممکن است شما بخواهید از این مکانیزم استفاده کنید ، اول اینکه با این روش می توانید از یک query در چندین موقعیت مختلف استفاده کنید ، دوم اینکه می توانید آن query را بدون نگرانی از اینکه در مکان های مختلف برنامه مورد استفاده قرار گرفته است بهبود دهید و بهینه سازید و یا ویرایش کنید.

مثال:
@Entity
@
Table(name = "ole_exam")
@
NamedQueries({
@
NamedQuery(name = "Exam.findByExamId", query = "SELECT e FROM Exam e WHERE e.examId = :examId")})
@
Entity
public class Exam implements Serializable {
...
}

در مثال بالا برای کلاس Exam یک Named Query تعریف شده است که یک پارامتر نیز می گیرد. شما می توانید با استفاده از تکه کد زیر این Named Query را فراخوانی کنید و همچنین به آن query پارامتر ارسال کنید:

Query query = em.createNamedQuery("Exam.findByExamId");
query.setParameter("
examId", 13);

شاد باشید.