NamedQuery is another useful feature provided by hibernate. Sometimes, we require a query or a bunch of queries multiple times in the life of an application; at such a time, this feature helps.
Let's create a scenario to understand this feature.
Let's consider that we want to search a category by name. The following code shows how NamedQuery would help us in this case.
For this, we will use the @NamedQuery
and @NamedQueries
annotations in a class:
@NamedQuery
: This annotation is used to define a single named query@NamedQueries
: This annotation is used to define multiple queries
Update the following code in their respective files:
Source file: Category.java
@NamedQuery(name="getCategoryNameByName", query="FROM Category c WHERE c.name=:name") @Entity @Table(name = "category") public class Category { // fields and getters/setters }
Here, we defined NamedQuery using the @NamedQuery
annotation, and we used two attributes.