| /* |
| * Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| package jpql.query; |
| |
| import java.io.Serializable; |
| import java.util.Collection; |
| import jakarta.persistence.CascadeType; |
| import jakarta.persistence.Column; |
| import jakarta.persistence.Embeddable; |
| import jakarta.persistence.Embedded; |
| import jakarta.persistence.Entity; |
| import jakarta.persistence.FetchType; |
| import jakarta.persistence.Id; |
| import jakarta.persistence.JoinColumn; |
| import jakarta.persistence.ManyToOne; |
| import jakarta.persistence.NamedQueries; |
| import jakarta.persistence.NamedQuery; |
| import jakarta.persistence.OneToMany; |
| |
| @Entity |
| @NamedQueries |
| ({ |
| @NamedQuery(name="employee.?1", query="SELECT e FROM Employee e WHERE e.name = ?1 ORDER BY e.name"), |
| @NamedQuery(name="employee.addition1", query="SELECT 2 + 2.2F FROM Employee e"), |
| @NamedQuery(name="employee.addition2", query="SELECT AVG(e.salary) + 2E2 FROM Employee e"), |
| @NamedQuery(name="employee.addition3", query="SELECT e.salary + 2 FROM Employee e"), |
| @NamedQuery(name="employee.addition4", query="SELECT e.name + 2 FROM Employee e"), |
| @NamedQuery(name="employee.and", query="SELECT OBJECT(e) FROM Employee e WHERE e.phoneNumbers IS EMPTY and e.name like 'testFlushModeOnUpdateQuery'"), |
| @NamedQuery(name="employee.case1", query="SELECT CASE WHEN e.name = 'Java Persistence Query Language' THEN 'Java Persistence Query Language' WHEN e.salary BETWEEN 1 and 2 THEN SUBSTRING(e.name, 0, 2) ELSE e.name END FROM Employee e"), |
| @NamedQuery(name="employee.case2", query="SELECT CASE WHEN e.name = 'JPQL' THEN e.working WHEN e.salary BETWEEN 1 and 2 THEN TRUE ELSE p.completed END FROM Employee e, Project p"), |
| @NamedQuery(name="employee.case3", query="SELECT CASE WHEN e.name = 'JPQL' THEN e.working WHEN e.salary BETWEEN 1 and 2 THEN SUBSTRING(e.name, 0, 2) ELSE e.dept END FROM Employee e"), |
| @NamedQuery(name="employee.caseInsensitive", query="SELECT e FROM Employee E"), |
| @NamedQuery(name="employee.collection", query="SELECT e.name, d.dname FROM Employee e, Dept d"), |
| @NamedQuery(name="employee.date1", query="SELECT CURRENT_DATE FROM Employee e"), |
| @NamedQuery(name="employee.date2", query="SELECT {d '2008-12-31'} FROM Employee e"), |
| @NamedQuery(name="employee.delete", query="DELETE FROM Employee e"), |
| @NamedQuery(name="employee.delete.dept", query="DELETE FROM Employee e WHERE e.department = :dept"), |
| @NamedQuery(name="employee.dept", query="SELECT e FROM Employee e WHERE e.salary = (SELECT MAX(e.salary) FROM Employee a WHERE a.department = :dept)"), |
| @NamedQuery(name="employee.deptBase", query="SELECT e FROM Employee e WHERE e.department = :dept AND e.salary > :base"), |
| @NamedQuery(name="employee.deptno", query="select e from Employee e where e.dept.deptno in (:deptno)"), |
| @NamedQuery(name="employee.division1", query="SELECT 2 / 2.2F FROM Employee e"), |
| @NamedQuery(name="employee.division2", query="SELECT AVG(e.salary) / 2E2 FROM Employee e"), |
| @NamedQuery(name="employee.division3", query="SELECT e.salary / 2 FROM Employee e"), |
| @NamedQuery(name="employee.division4", query="SELECT e.name / 2 FROM Employee e"), |
| @NamedQuery(name="employee.empId", query="select ds from Employee ds, Product ci where ds.empId = :conversationId AND ds.state = 0 AND ds.cikey = ci.cikey AND ci.state <> 2"), |
| @NamedQuery(name="employee.enum", query="SELECT CASE WHEN e.name = 'Pascal' THEN jpql.query.EnumType.FIRST_NAME WHEN e.name = 'JPQL' THEN jpql.query.EnumType.LAST_NAME ELSE jpql.query.EnumType.NAME END FROM Employee e"), |
| @NamedQuery(name="employee.lower", query="SELECT LOWER(e.name) FROM Employee e"), |
| @NamedQuery(name="employee.false", query="SELECT FALSE FROM Employee e"), |
| @NamedQuery(name="employee.findAll", query="SELECT e FROM Employee e"), |
| @NamedQuery(name="employee.fromSubquery1", query="Select e3.salary from Employee e, (Select count(e2), e2.department from Employee e2 group by e2.department) e3 where e3.department = :dept"), |
| @NamedQuery(name="employee.fromSubquery2", query="Select e3.salary from Employee e, (Select count(e2), e2.department from Employee e2 group by e2.department) e3 where e.department = e3.department"), |
| @NamedQuery(name="employee.fromSubquery3", query="Select e3.count from Employee e, (Select count(e2) as count, e2.department from Employee e2 group by e2.department) e3 where e.department = e3.department"), |
| @NamedQuery(name="employee.fromSubquery4", query="Select e3.result from Employee e, (Select count(e2) + 2.2 as result, e2.department from Employee e2 group by e2.department) e3 where e.department = e3.department"), |
| @NamedQuery(name="employee.func1", query="SELECT FUNC('toString', e.name) FROM Employee e"), |
| @NamedQuery(name="employee.func2", query="SELECT FUNC('age', e.empId, e.salary) FROM Employee e"), |
| @NamedQuery(name="employee.func3", query="SELECT FUNC('age', e.empId, e.name) FROM Employee e"), |
| @NamedQuery(name="employee.func4", query="SELECT FUNC('age', e.empId, :name) FROM Employee e"), |
| @NamedQuery(name="employee.in", query="SELECT e FROM Employee e WHERE e.name IN :type"), |
| @NamedQuery(name="employee.join.fetch1", query="SELECT e FROM Employee e JOIN FETCH e.address WHERE e.empId = :ID"), |
| @NamedQuery(name="employee.join.fetch2", query="SELECT e, e.name FROM Employee e JOIN FETCH e.address WHERE e.empId = :ID"), |
| @NamedQuery(name="employee.join.left1", query="SELECT a FROM Employee e LEFT JOIN e.address a"), |
| @NamedQuery(name="employee.join.left2", query="SELECT m, e FROM Employee e LEFT JOIN e.managerEmployee m"), |
| @NamedQuery(name="employee.max", query="SELECT MAX(e.salary) FROM Employee e"), |
| @NamedQuery(name="employee.min", query="SELECT MIN(e.salary) FROM Employee e"), |
| @NamedQuery(name="employee.mod", query="SELECT MOD(e.salary, e.empId) FROM Employee e"), |
| @NamedQuery(name="employee.multiplication1", query="SELECT 2 * 2.2F FROM Employee e"), |
| @NamedQuery(name="employee.multiplication2", query="SELECT AVG(e.salary) * 2E2 FROM Employee e"), |
| @NamedQuery(name="employee.multiplication3", query="SELECT e.salary * 2 FROM Employee e"), |
| @NamedQuery(name="employee.multiplication4", query="SELECT e.name * 2 FROM Employee e"), |
| @NamedQuery(name="employee.nullif1", query="SELECT NULLIF(e.name, 'JPQL') FROM Employee e"), |
| @NamedQuery(name="employee.nullif2", query="SELECT NULLIF(2 + 2, 'JPQL') FROM Employee e"), |
| @NamedQuery(name="employee.object1", query="SELECT OBJECT(e) FROM Employee e"), |
| @NamedQuery(name="employee.object2", query="SELECT OBJECT(e) FROM Employee e WHERE e.name = ?1"), |
| @NamedQuery(name="employee.resultVariable1", query="SELECT e.name AS n From Employee e"), |
| @NamedQuery(name="employee.resultVariable2", query="SELECT e.name n From Employee e"), |
| @NamedQuery(name="employee.resultVariable3", query="SELECT e.salary / 1000D n From Employee e"), |
| @NamedQuery(name="employee.select", query="SELECT e FROM Employee e"), |
| @NamedQuery(name="employee.sum", query="SELECT SUM(e.salary) FROM Employee e"), |
| @NamedQuery(name="employee.subquery1", query="SELECT e FROM Employee e WHERE EXISTS (SELECT p FROM Project p JOIN p.employees emp WHERE emp = e AND p.name = :name)"), |
| @NamedQuery(name="employee.subquery2", query="SELECT e FROM Employee e WHERE e.empId in (SELECT MIN(ee.empId) FROM Employee ee)"), |
| @NamedQuery(name="employee.subquery.code_1", query="SELECT e FROM Employee e WHERE e.salary > (SELECT AVG(f.salary) FROM Employee f)"), |
| @NamedQuery(name="employee.substraction1", query="SELECT 2 - 2.2F FROM Employee e"), |
| @NamedQuery(name="employee.substraction2", query="SELECT AVG(e.salary) - 2E2 FROM Employee e"), |
| @NamedQuery(name="employee.substraction3", query="SELECT e.salary - 2 FROM Employee e"), |
| @NamedQuery(name="employee.substraction4", query="SELECT e.name - 2 FROM Employee e"), |
| @NamedQuery(name="employee.trim", query="SELECT TRIM(e.name) FROM Employee e"), |
| @NamedQuery(name="employee.true", query="SELECT TRUE FROM Employee e"), |
| @NamedQuery(name="employee.update1", query="UPDATE Employee e SET e.name = ?1"), |
| @NamedQuery(name="employee.update2", query="UPDATE Employee e set e.salary = e.roomNumber, e.roomNumber = e.salary, e.address = null where e.name = 'testUpdateUsingTempStorage'"), |
| @NamedQuery(name="employee.update.positional", query="UPDATE Employee e SET e.manager = ?1 WHERE e.department = ?2"), |
| @NamedQuery(name="employee.upper", query="SELECT UPPER(e.name) FROM Employee e") |
| }) |
| @SuppressWarnings("unused") |
| public class Employee implements Serializable { |
| |
| @ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.LAZY) |
| @JoinColumn(name = "ADDR_ID") |
| private Address address; |
| private String department; |
| @ManyToOne |
| @JoinColumn(name = "DEPTNO") |
| private Dept dept; |
| @Embedded |
| private EmbeddedAddress embeddedAddress; |
| @Id |
| @Column(name = "EMP_ID", nullable = false) |
| private Long empId; |
| private String manager; |
| @ManyToOne(cascade=CascadeType.PERSIST, fetch=FetchType.LAZY) |
| private Employee managerEmployee; |
| private String name; |
| @OneToMany(cascade = CascadeType.ALL, mappedBy = "employee") |
| private Collection<Phone> phoneNumbers; |
| private int roomNumber; |
| private Long salary; |
| private Boolean working; |
| |
| public Employee() { |
| super(); |
| } |
| |
| public Employee(Long empId) { |
| super(); |
| this.empId = empId; |
| } |
| |
| @Embeddable |
| public static class EmbeddedAddress { |
| private String city; |
| private String streetName; |
| private String zipCode; |
| } |
| } |