package com.ankurm.hibernatedemo.namedquery; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.NamedQuery; import jakarta.persistence.Table; /** * Has one {@code @NamedQuery} defined via annotation ({@code XmlQueryEmployee.findBySalaryAbove}) * AND one defined via {@code orm.xml} ({@code XmlQueryEmployee.findBySalaryAboveXml}), plus an * XML-defined query that OVERRIDES a same-named annotated one * ({@code XmlQueryEmployee.overridden}) -- see src/main/resources/META-INF/orm.xml. Docs: * 14-named-queries.md, chapter "Named queries in orm.xml". */ @Entity @Table(name = "xml_query_employee") @NamedQuery(name = "XmlQueryEmployee.findBySalaryAbove", query = "SELECT e FROM XmlQueryEmployee e WHERE e.salary > :min") @NamedQuery(name = "XmlQueryEmployee.overridden", query = "SELECT e FROM XmlQueryEmployee e WHERE e.salary < 0") // deliberately wrong; orm.xml should win public class XmlQueryEmployee { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private double salary; protected XmlQueryEmployee() { } public XmlQueryEmployee(String name, double salary) { this.name = name; this.salary = salary; } public Long getId() { return id; } public String getName() { return name; } }