package com.ankurm.hibernatedemo.query; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; /** * Shared by the HQL chapter (15) and the Criteria API chapter (16) — both posts use the * same Employee/Department pair in their examples, so one real mapping backs both rather than * two near-duplicates. * *
Named {@code QueryDept} (entity name, via {@code @Entity(name = ...)}), not {@code * Department}, because chapter 06's {@code naturalid.Department} already claims that entity * name in this same persistence unit -- Hibernate requires distinct entity names project-wide, * not just distinct class names. * *
Docs: docs/15-hql-queries.md, docs/16-criteria-queries.md. */ @Entity(name = "QueryDept") public class Department { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; protected Department() { // JPA } public Department(String name) { this.name = name; } public Long getId() { return id; } public String getName() { return name; } @Override public String toString() { return "Department{id=%s, name=%s}".formatted(id, name); } }