Hibernate Named Queries are created via class-level annotations on entities; normally, the queries apply to the entity in whose source file they occur, but there’s no absolute requirement for this to be true.
Named queries are created with the @NamedQueries annotation, which contains an array of @NamedQuery sets; each has a query and a name.
Example :
@Entity
@Table(name = "Employee")
@NamedQueries({
@NamedQuery(name = "Employee.findAll", query = "from Employee emp"),
@NamedQuery(name = "Employee.findByName",
query = "from Employee emp where emp.firstName=:firstName"),
})
public class Employee implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private int id;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "address")
private String address;
// getters & setters & toString()
// ...
}
Executing above named query :
Query namedQuery = session.getNamedQuery("Employee.findAll");
List<Employee> employees = namedQuery.list();
employees.forEach(System.out::println);
Summary
In this tutorial, we learnt about what is hibernate named query and understood by seeing an example of how to declare a named query.
I hope you liked it !