blob: 92749102209a4d8099a2d5fb0be086e2397d68f9 [file] [log] [blame]
/*
* Copyright (c) 2005, 2020 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 2015 SAP. 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
*/
// Contributors:
// SAP - initial API and implementation
package org.eclipse.persistence.testing.models.wdf.jpa1.employee;
import java.io.Serializable;
import jakarta.persistence.Basic;
import jakarta.persistence.Cacheable;
import jakarta.persistence.ColumnResult;
import jakarta.persistence.Entity;
import jakarta.persistence.EntityResult;
import jakarta.persistence.FieldResult;
import jakarta.persistence.Id;
import jakarta.persistence.NamedNativeQueries;
import jakarta.persistence.NamedNativeQuery;
import jakarta.persistence.NamedQueries;
import jakarta.persistence.NamedQuery;
import jakarta.persistence.QueryHint;
import jakarta.persistence.SqlResultSetMapping;
import jakarta.persistence.SqlResultSetMappings;
import jakarta.persistence.Table;
import jakarta.persistence.Version;
import org.eclipse.persistence.config.HintValues;
import org.eclipse.persistence.config.QueryHints;
@Cacheable(true)
@Entity
@Table(name = "TMP_DEP")
@NamedQueries( {
@NamedQuery(name = "getAllDepartmentsCached", query = "select d from Department d", hints = { @QueryHint(name = QueryHints.QUERY_RESULTS_CACHE, value = HintValues.TRUE) }) ,
@NamedQuery(name = "getDepartmentByName", query = "select d from Department d where d.name = ?1"),
@NamedQuery(name = "getDepartmentById", query = "select d from Department d where d.id = ?1"),
@NamedQuery(name = "getDepartmentUnCached", query = "select d from Department d where d.name = ?1", hints = { }),
@NamedQuery(name = "getDepartmentCached", query = "select d from Department d where d.name = ?1", hints = { @QueryHint(name = QueryHints.QUERY_RESULTS_CACHE, value = HintValues.TRUE) }) })
@NamedNativeQueries( {
@NamedNativeQuery(name = "getDepartmentWithId10SQL_class", query = "select * from TMP_DEP D where D.ID = 10", resultClass = Department.class),
@NamedNativeQuery(name = "getDepartmentWithId10SQL_mapping", query = "select * from TMP_DEP D where D.ID = 10", resultSetMapping = "departmentByClass"),
@NamedNativeQuery(name = "getDepartmentName", query = "select name as \"HUTZLIPUTZ\" from TMP_DEP D where D.ID = 10", resultSetMapping = "departmentNameOnly"),
@NamedNativeQuery(name = "getDepartmentFieldByField", query = "select id as \"D_ID\", name as \"D_NAME\", version as \"D_VERSION\" from TMP_DEP D where D.ID = 10", resultSetMapping = "departmentByFields"),
@NamedNativeQuery(name = "getDepartmentFieldByField1", query = "select id as \"ID\", name as \"NAME\" from TMP_DEP D where D.ID = 1", resultSetMapping = "departmentByFields1") })
@SqlResultSetMappings( {
@SqlResultSetMapping(name = "departmentByClass", entities = { @EntityResult(entityClass = Department.class) }),
@SqlResultSetMapping(name = "departmentNameOnly", columns = { @ColumnResult(name = "HUTZLIPUTZ") }),
@SqlResultSetMapping(name = "departmentByFields", entities = { @EntityResult(entityClass = Department.class, fields = {
@FieldResult(name = "id", column = "D_ID"), @FieldResult(name = "name", column = "D_NAME"),
@FieldResult(name = "version", column = "D_VERSION") }) }),
@SqlResultSetMapping(name = "departmentByFields1", columns = { @ColumnResult(name = "ID"), @ColumnResult(name = "NAME") }) })
public class Department implements Serializable {
public static final String HUGO = "hugo";
private static final long serialVersionUID = 1L;
public void setId(int id) {
this._id = id;
}
private int _id;
private String _name;
private short version;
// this constructor should be protected
protected Department() {
}
public Department(int aId, String aName) {
_id = aId;
_name = aName;
}
@Id
public int getId() {
return _id;
}
public void setName(String aName) {
_name = aName;
}
@Basic
public String getName() {
return _name;
}
@Version
public short getVersion() {
return version;
}
// called by EntityManager
protected void setVersion(short newVersion) {
version = newVersion;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (obj instanceof Department) {
Department other = (Department) obj;
if (_id != other._id) {
return false;
}
if (_name == null) {
return other._name == null;
} else {
return _name.equals(other._name);
}
}
return false;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
return _id;
}
public Object writeReplace() {
Department copy = new Department();
copy._id = _id;
copy._name = HUGO;
copy.version = version;
return copy;
}
public static class KrassDep extends Department {
private static final long serialVersionUID = 1L;
private final String gnubbelWurst;
public KrassDep(String gnubbelWurst) {
super();
this.gnubbelWurst = gnubbelWurst;
}
public String getGnubbelWurst() {
return gnubbelWurst;
}
}
}