47 lines
1.4 KiB
Java
Executable File
47 lines
1.4 KiB
Java
Executable File
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;
|
|
}
|
|
}
|