<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FJPA%2FResultSet_Mapping</id>
		<title>Java Tutorial/JPA/ResultSet Mapping - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FJPA%2FResultSet_Mapping"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/JPA/ResultSet_Mapping&amp;action=history"/>
		<updated>2026-04-19T03:12:50Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/JPA/ResultSet_Mapping&amp;diff=5164&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/JPA/ResultSet_Mapping&amp;diff=5164&amp;oldid=prev"/>
				<updated>2010-06-01T05:18:24Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:18, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/JPA/ResultSet_Mapping&amp;diff=5163&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/JPA/ResultSet_Mapping&amp;diff=5163&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Alias Column In Resultset Mapping ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Employee.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import javax.persistence.Column;&lt;br /&gt;
import javax.persistence.Entity;&lt;br /&gt;
import javax.persistence.EntityResult;&lt;br /&gt;
import javax.persistence.FieldResult;&lt;br /&gt;
import javax.persistence.GeneratedValue;&lt;br /&gt;
import javax.persistence.GenerationType;&lt;br /&gt;
import javax.persistence.Id;&lt;br /&gt;
import javax.persistence.JoinColumn;&lt;br /&gt;
import javax.persistence.ManyToOne;&lt;br /&gt;
import javax.persistence.OneToMany;&lt;br /&gt;
import javax.persistence.OneToOne;&lt;br /&gt;
import javax.persistence.SqlResultSetMapping;&lt;br /&gt;
import javax.persistence.SqlResultSetMappings;&lt;br /&gt;
import javax.persistence.Table;&lt;br /&gt;
@Entity&lt;br /&gt;
@Table(name=&amp;quot;EMP&amp;quot;)&lt;br /&gt;
@SqlResultSetMappings({&lt;br /&gt;
  @SqlResultSetMapping(&lt;br /&gt;
      name=&amp;quot;EmployeeWithAddressColumnAlias&amp;quot;,&lt;br /&gt;
      entities={@EntityResult(entityClass=Employee.class,&lt;br /&gt;
                              fields=@FieldResult(name=&amp;quot;id&amp;quot;, column=&amp;quot;EMP_ID&amp;quot;)),&lt;br /&gt;
                @EntityResult(entityClass=Address.class)}&lt;br /&gt;
  )&lt;br /&gt;
})&lt;br /&gt;
public class Employee {&lt;br /&gt;
    @Id&lt;br /&gt;
    @Column(name=&amp;quot;EMP_ID&amp;quot;)&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    &lt;br /&gt;
    @OneToOne&lt;br /&gt;
    private Address address;&lt;br /&gt;
    &lt;br /&gt;
    @ManyToOne&lt;br /&gt;
    @JoinColumn(name=&amp;quot;DEPT_ID&amp;quot;)&lt;br /&gt;
    private Department department;&lt;br /&gt;
    &lt;br /&gt;
    @ManyToOne&lt;br /&gt;
    @JoinColumn(name=&amp;quot;MANAGER_ID&amp;quot;)&lt;br /&gt;
    private Employee manager;&lt;br /&gt;
    &lt;br /&gt;
    @OneToMany(mappedBy=&amp;quot;manager&amp;quot;)&lt;br /&gt;
    private Collection&amp;lt;Employee&amp;gt; directs = new ArrayList&amp;lt;Employee&amp;gt;();&lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getName() {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setName(String name) {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Address getAddress() {&lt;br /&gt;
        return address;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setAddress(Address address) {&lt;br /&gt;
        this.address = address; &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Department getDepartment() {&lt;br /&gt;
        return department;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setDepartment(Department department) {&lt;br /&gt;
        this.department = department;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Collection&amp;lt;Employee&amp;gt; getDirects() {&lt;br /&gt;
        return directs;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void addDirect(Employee employee) {&lt;br /&gt;
        if (!getDirects().contains(employee)) {&lt;br /&gt;
            getDirects().add(employee);&lt;br /&gt;
            if (employee.getManager() != null) {&lt;br /&gt;
                employee.getManager().getDirects().remove(employee);&lt;br /&gt;
            }&lt;br /&gt;
            employee.setManager(this);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Employee getManager() {&lt;br /&gt;
        return manager;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setManager(Employee manager) {&lt;br /&gt;
        this.manager = manager;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@Entity&lt;br /&gt;
class Department {&lt;br /&gt;
    @Id @GeneratedValue(strategy=GenerationType.IDENTITY)&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getName() {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setName(String deptName) {&lt;br /&gt;
        this.name = deptName;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Department id: &amp;quot; + getId() + &lt;br /&gt;
               &amp;quot;, name: &amp;quot; + getName();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@Entity&lt;br /&gt;
class Address {&lt;br /&gt;
    @Id&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String street;&lt;br /&gt;
    private String city;&lt;br /&gt;
    private String state;&lt;br /&gt;
    private String zip;&lt;br /&gt;
    &lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getStreet() {&lt;br /&gt;
        return street;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setStreet(String address) {&lt;br /&gt;
        this.street = address;&lt;br /&gt;
    }&lt;br /&gt;
    public String getCity() {&lt;br /&gt;
        return city;&lt;br /&gt;
    }&lt;br /&gt;
    public void setCity(String city) {&lt;br /&gt;
        this.city = city;&lt;br /&gt;
    }&lt;br /&gt;
    public String getState() {&lt;br /&gt;
        return state;&lt;br /&gt;
    }&lt;br /&gt;
    public void setState(String state) {&lt;br /&gt;
        this.state = state;&lt;br /&gt;
    }&lt;br /&gt;
    public String getZip() {&lt;br /&gt;
        return zip;&lt;br /&gt;
    }&lt;br /&gt;
    public void setZip(String zip) {&lt;br /&gt;
        this.zip = zip;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Address id: &amp;quot; + getId() + &lt;br /&gt;
               &amp;quot;, street: &amp;quot; + getStreet() +&lt;br /&gt;
               &amp;quot;, city: &amp;quot; + getCity() +&lt;br /&gt;
               &amp;quot;, state: &amp;quot; + getState() +&lt;br /&gt;
               &amp;quot;, zip: &amp;quot; + getZip();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  ID Class ResultSet Mapping ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Employee.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import javax.persistence.Column;&lt;br /&gt;
import javax.persistence.Entity;&lt;br /&gt;
import javax.persistence.EntityResult;&lt;br /&gt;
import javax.persistence.FieldResult;&lt;br /&gt;
import javax.persistence.Id;&lt;br /&gt;
import javax.persistence.IdClass;&lt;br /&gt;
import javax.persistence.JoinColumn;&lt;br /&gt;
import javax.persistence.JoinColumns;&lt;br /&gt;
import javax.persistence.ManyToOne;&lt;br /&gt;
import javax.persistence.OneToMany;&lt;br /&gt;
import javax.persistence.SqlResultSetMapping;&lt;br /&gt;
import javax.persistence.Table;&lt;br /&gt;
@Entity&lt;br /&gt;
@Table(name=&amp;quot;EMP&amp;quot;)&lt;br /&gt;
@IdClass(EmployeeId.class)&lt;br /&gt;
@SqlResultSetMapping(&lt;br /&gt;
    name=&amp;quot;EmployeeAndManager&amp;quot;,&lt;br /&gt;
    entities={&lt;br /&gt;
        @EntityResult(entityClass=Employee.class),&lt;br /&gt;
        @EntityResult(&lt;br /&gt;
            entityClass=Employee.class,&lt;br /&gt;
            fields={&lt;br /&gt;
                @FieldResult(name=&amp;quot;country&amp;quot;, column=&amp;quot;MGR_COUNTRY&amp;quot;),&lt;br /&gt;
                @FieldResult(name=&amp;quot;id&amp;quot;, column=&amp;quot;MGR_ID&amp;quot;),&lt;br /&gt;
                @FieldResult(name=&amp;quot;name&amp;quot;, column=&amp;quot;MGR_NAME&amp;quot;),&lt;br /&gt;
                @FieldResult(name=&amp;quot;manager.country&amp;quot;, column=&amp;quot;MGR_MGR_COUNTRY&amp;quot;),&lt;br /&gt;
                @FieldResult(name=&amp;quot;manager.id&amp;quot;, column=&amp;quot;MGR_MGR_ID&amp;quot;)&lt;br /&gt;
            }&lt;br /&gt;
        )&lt;br /&gt;
    }&lt;br /&gt;
)&lt;br /&gt;
public class Employee {&lt;br /&gt;
    @Id private String country;&lt;br /&gt;
    @Id&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    &lt;br /&gt;
    @ManyToOne &lt;br /&gt;
    @JoinColumns({&lt;br /&gt;
        @JoinColumn(name=&amp;quot;MANAGER_COUNTRY&amp;quot;, referencedColumnName=&amp;quot;COUNTRY&amp;quot;),&lt;br /&gt;
        @JoinColumn(name=&amp;quot;MANAGER_ID&amp;quot;, referencedColumnName=&amp;quot;ID&amp;quot;)&lt;br /&gt;
    })&lt;br /&gt;
    private Employee manager;&lt;br /&gt;
    &lt;br /&gt;
    @OneToMany(mappedBy=&amp;quot;manager&amp;quot;)&lt;br /&gt;
    private Collection&amp;lt;Employee&amp;gt; directs = new ArrayList&amp;lt;Employee&amp;gt;();&lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getCountry() {&lt;br /&gt;
        return country;&lt;br /&gt;
    }&lt;br /&gt;
    public void setCountry(String country) {&lt;br /&gt;
        this.country = country;&lt;br /&gt;
    }&lt;br /&gt;
    public String getName() {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setName(String name) {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Collection&amp;lt;Employee&amp;gt; getDirects() {&lt;br /&gt;
        return directs;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Employee getManager() {&lt;br /&gt;
        return manager;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setManager(Employee manager) {&lt;br /&gt;
        this.manager = manager;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class EmployeeId implements Serializable {&lt;br /&gt;
    private String country; &lt;br /&gt;
    private int id; &lt;br /&gt;
    public EmployeeId() {}&lt;br /&gt;
    public EmployeeId(String country, int id) {&lt;br /&gt;
      this.country = country;&lt;br /&gt;
      this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    public String getCountry() { return country; }&lt;br /&gt;
    public int getId() { return id; }&lt;br /&gt;
    public boolean equals(Object o) { &lt;br /&gt;
        return ((o instanceof EmployeeId) &amp;amp;&amp;amp; &lt;br /&gt;
                country.equals(((EmployeeId)o).getCountry()) &amp;amp;&amp;amp;&lt;br /&gt;
                id == ((EmployeeId) o).getId());&lt;br /&gt;
    }&lt;br /&gt;
    public int hashCode() { &lt;br /&gt;
        return country.hashCode() + id; &lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Resultset Mapping With Two Entities ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Employee.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import javax.persistence.Column;&lt;br /&gt;
import javax.persistence.Entity;&lt;br /&gt;
import javax.persistence.EntityResult;&lt;br /&gt;
import javax.persistence.GeneratedValue;&lt;br /&gt;
import javax.persistence.GenerationType;&lt;br /&gt;
import javax.persistence.Id;&lt;br /&gt;
import javax.persistence.JoinColumn;&lt;br /&gt;
import javax.persistence.ManyToOne;&lt;br /&gt;
import javax.persistence.OneToMany;&lt;br /&gt;
import javax.persistence.OneToOne;&lt;br /&gt;
import javax.persistence.SqlResultSetMapping;&lt;br /&gt;
import javax.persistence.SqlResultSetMappings;&lt;br /&gt;
import javax.persistence.Table;&lt;br /&gt;
@Entity&lt;br /&gt;
@Table(name=&amp;quot;EMP&amp;quot;)&lt;br /&gt;
@SqlResultSetMappings({&lt;br /&gt;
  @SqlResultSetMapping(&lt;br /&gt;
      name=&amp;quot;EmployeeWithAddress&amp;quot;,&lt;br /&gt;
      entities={@EntityResult(entityClass=Employee.class),&lt;br /&gt;
                @EntityResult(entityClass=Address.class)}&lt;br /&gt;
  )&lt;br /&gt;
})&lt;br /&gt;
public class Employee {&lt;br /&gt;
    @Id&lt;br /&gt;
    @Column(name=&amp;quot;EMP_ID&amp;quot;)&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    &lt;br /&gt;
    @OneToOne&lt;br /&gt;
    private Address address;&lt;br /&gt;
    &lt;br /&gt;
    @ManyToOne&lt;br /&gt;
    @JoinColumn(name=&amp;quot;DEPT_ID&amp;quot;)&lt;br /&gt;
    private Department department;&lt;br /&gt;
    &lt;br /&gt;
    @ManyToOne&lt;br /&gt;
    @JoinColumn(name=&amp;quot;MANAGER_ID&amp;quot;)&lt;br /&gt;
    private Employee manager;&lt;br /&gt;
    &lt;br /&gt;
    @OneToMany(mappedBy=&amp;quot;manager&amp;quot;)&lt;br /&gt;
    private Collection&amp;lt;Employee&amp;gt; directs = new ArrayList&amp;lt;Employee&amp;gt;();&lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getName() {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setName(String name) {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Address getAddress() {&lt;br /&gt;
        return address;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setAddress(Address address) {&lt;br /&gt;
        this.address = address; &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Department getDepartment() {&lt;br /&gt;
        return department;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setDepartment(Department department) {&lt;br /&gt;
        this.department = department;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Collection&amp;lt;Employee&amp;gt; getDirects() {&lt;br /&gt;
        return directs;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void addDirect(Employee employee) {&lt;br /&gt;
        if (!getDirects().contains(employee)) {&lt;br /&gt;
            getDirects().add(employee);&lt;br /&gt;
            if (employee.getManager() != null) {&lt;br /&gt;
                employee.getManager().getDirects().remove(employee);&lt;br /&gt;
            }&lt;br /&gt;
            employee.setManager(this);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Employee getManager() {&lt;br /&gt;
        return manager;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setManager(Employee manager) {&lt;br /&gt;
        this.manager = manager;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@Entity&lt;br /&gt;
class Department {&lt;br /&gt;
    @Id @GeneratedValue(strategy=GenerationType.IDENTITY)&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getName() {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setName(String deptName) {&lt;br /&gt;
        this.name = deptName;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Department id: &amp;quot; + getId() + &lt;br /&gt;
               &amp;quot;, name: &amp;quot; + getName();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@Entity&lt;br /&gt;
class Address {&lt;br /&gt;
    @Id&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String street;&lt;br /&gt;
    private String city;&lt;br /&gt;
    private String state;&lt;br /&gt;
    private String zip;&lt;br /&gt;
    &lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getStreet() {&lt;br /&gt;
        return street;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setStreet(String address) {&lt;br /&gt;
        this.street = address;&lt;br /&gt;
    }&lt;br /&gt;
    public String getCity() {&lt;br /&gt;
        return city;&lt;br /&gt;
    }&lt;br /&gt;
    public void setCity(String city) {&lt;br /&gt;
        this.city = city;&lt;br /&gt;
    }&lt;br /&gt;
    public String getState() {&lt;br /&gt;
        return state;&lt;br /&gt;
    }&lt;br /&gt;
    public void setState(String state) {&lt;br /&gt;
        this.state = state;&lt;br /&gt;
    }&lt;br /&gt;
    public String getZip() {&lt;br /&gt;
        return zip;&lt;br /&gt;
    }&lt;br /&gt;
    public void setZip(String zip) {&lt;br /&gt;
        this.zip = zip;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Address id: &amp;quot; + getId() + &lt;br /&gt;
               &amp;quot;, street: &amp;quot; + getStreet() +&lt;br /&gt;
               &amp;quot;, city: &amp;quot; + getCity() +&lt;br /&gt;
               &amp;quot;, state: &amp;quot; + getState() +&lt;br /&gt;
               &amp;quot;, zip: &amp;quot; + getZip();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Single Table ResultSet Mapping ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Employee.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import javax.persistence.Column;&lt;br /&gt;
import javax.persistence.Entity;&lt;br /&gt;
import javax.persistence.EntityResult;&lt;br /&gt;
import javax.persistence.GeneratedValue;&lt;br /&gt;
import javax.persistence.GenerationType;&lt;br /&gt;
import javax.persistence.Id;&lt;br /&gt;
import javax.persistence.JoinColumn;&lt;br /&gt;
import javax.persistence.ManyToOne;&lt;br /&gt;
import javax.persistence.OneToMany;&lt;br /&gt;
import javax.persistence.OneToOne;&lt;br /&gt;
import javax.persistence.SqlResultSetMapping;&lt;br /&gt;
import javax.persistence.SqlResultSetMappings;&lt;br /&gt;
import javax.persistence.Table;&lt;br /&gt;
@Entity&lt;br /&gt;
@Table(name=&amp;quot;EMP&amp;quot;)&lt;br /&gt;
@SqlResultSetMappings({&lt;br /&gt;
    @SqlResultSetMapping(&lt;br /&gt;
        name=&amp;quot;employeeResult&amp;quot;,&lt;br /&gt;
        entities=@EntityResult(entityClass=Employee.class))&lt;br /&gt;
})&lt;br /&gt;
public class Employee {&lt;br /&gt;
    @Id&lt;br /&gt;
    @Column(name=&amp;quot;EMP_ID&amp;quot;)&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    &lt;br /&gt;
    @OneToOne&lt;br /&gt;
    private Address address;&lt;br /&gt;
    &lt;br /&gt;
    @ManyToOne&lt;br /&gt;
    @JoinColumn(name=&amp;quot;DEPT_ID&amp;quot;)&lt;br /&gt;
    private Department department;&lt;br /&gt;
    &lt;br /&gt;
    @ManyToOne&lt;br /&gt;
    @JoinColumn(name=&amp;quot;MANAGER_ID&amp;quot;)&lt;br /&gt;
    private Employee manager;&lt;br /&gt;
    &lt;br /&gt;
    @OneToMany(mappedBy=&amp;quot;manager&amp;quot;)&lt;br /&gt;
    private Collection&amp;lt;Employee&amp;gt; directs = new ArrayList&amp;lt;Employee&amp;gt;();&lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getName() {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setName(String name) {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Address getAddress() {&lt;br /&gt;
        return address;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setAddress(Address address) {&lt;br /&gt;
        this.address = address; &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Department getDepartment() {&lt;br /&gt;
        return department;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setDepartment(Department department) {&lt;br /&gt;
        this.department = department;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Collection&amp;lt;Employee&amp;gt; getDirects() {&lt;br /&gt;
        return directs;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void addDirect(Employee employee) {&lt;br /&gt;
        if (!getDirects().contains(employee)) {&lt;br /&gt;
            getDirects().add(employee);&lt;br /&gt;
            if (employee.getManager() != null) {&lt;br /&gt;
                employee.getManager().getDirects().remove(employee);&lt;br /&gt;
            }&lt;br /&gt;
            employee.setManager(this);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Employee getManager() {&lt;br /&gt;
        return manager;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setManager(Employee manager) {&lt;br /&gt;
        this.manager = manager;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@Entity&lt;br /&gt;
class Department {&lt;br /&gt;
    @Id @GeneratedValue(strategy=GenerationType.IDENTITY)&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getName() {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setName(String deptName) {&lt;br /&gt;
        this.name = deptName;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Department id: &amp;quot; + getId() + &lt;br /&gt;
               &amp;quot;, name: &amp;quot; + getName();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@Entity&lt;br /&gt;
class Address {&lt;br /&gt;
    @Id&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String street;&lt;br /&gt;
    private String city;&lt;br /&gt;
    private String state;&lt;br /&gt;
    private String zip;&lt;br /&gt;
    &lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getStreet() {&lt;br /&gt;
        return street;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setStreet(String address) {&lt;br /&gt;
        this.street = address;&lt;br /&gt;
    }&lt;br /&gt;
    public String getCity() {&lt;br /&gt;
        return city;&lt;br /&gt;
    }&lt;br /&gt;
    public void setCity(String city) {&lt;br /&gt;
        this.city = city;&lt;br /&gt;
    }&lt;br /&gt;
    public String getState() {&lt;br /&gt;
        return state;&lt;br /&gt;
    }&lt;br /&gt;
    public void setState(String state) {&lt;br /&gt;
        this.state = state;&lt;br /&gt;
    }&lt;br /&gt;
    public String getZip() {&lt;br /&gt;
        return zip;&lt;br /&gt;
    }&lt;br /&gt;
    public void setZip(String zip) {&lt;br /&gt;
        this.zip = zip;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Address id: &amp;quot; + getId() + &lt;br /&gt;
               &amp;quot;, street: &amp;quot; + getStreet() +&lt;br /&gt;
               &amp;quot;, city: &amp;quot; + getCity() +&lt;br /&gt;
               &amp;quot;, state: &amp;quot; + getState() +&lt;br /&gt;
               &amp;quot;, zip: &amp;quot; + getZip();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Sql ResultSet Mapping For Hierarchical Entity ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Employee.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Date;&lt;br /&gt;
import javax.persistence.Column;&lt;br /&gt;
import javax.persistence.DiscriminatorColumn;&lt;br /&gt;
import javax.persistence.DiscriminatorValue;&lt;br /&gt;
import javax.persistence.Entity;&lt;br /&gt;
import javax.persistence.EntityResult;&lt;br /&gt;
import javax.persistence.FieldResult;&lt;br /&gt;
import javax.persistence.Id;&lt;br /&gt;
import javax.persistence.Inheritance;&lt;br /&gt;
import javax.persistence.SqlResultSetMapping;&lt;br /&gt;
import javax.persistence.Table;&lt;br /&gt;
import javax.persistence.Temporal;&lt;br /&gt;
import javax.persistence.TemporalType;&lt;br /&gt;
@Entity &lt;br /&gt;
@Table(name=&amp;quot;EMPLOYEE_STAGE&amp;quot;)&lt;br /&gt;
@Inheritance&lt;br /&gt;
@DiscriminatorColumn(name=&amp;quot;EMP_TYPE&amp;quot;)&lt;br /&gt;
@SqlResultSetMapping(&lt;br /&gt;
    name=&amp;quot;EmployeeStageMapping&amp;quot;,&lt;br /&gt;
    entities=&lt;br /&gt;
        @EntityResult(&lt;br /&gt;
            entityClass=Employee.class,&lt;br /&gt;
            discriminatorColumn=&amp;quot;TYPE&amp;quot;,&lt;br /&gt;
            fields={&lt;br /&gt;
                @FieldResult(name=&amp;quot;startDate&amp;quot;, column=&amp;quot;START_DATE&amp;quot;),&lt;br /&gt;
                @FieldResult(name=&amp;quot;dailyRate&amp;quot;, column=&amp;quot;DAILY_RATE&amp;quot;),&lt;br /&gt;
                @FieldResult(name=&amp;quot;hourlyRate&amp;quot;, column=&amp;quot;HOURLY_RATE&amp;quot;)&lt;br /&gt;
            }&lt;br /&gt;
        )&lt;br /&gt;
)&lt;br /&gt;
public abstract class Employee {&lt;br /&gt;
    @Id private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    @Temporal(TemporalType.DATE)&lt;br /&gt;
    @Column(name=&amp;quot;START_DATE&amp;quot;)&lt;br /&gt;
    private Date startDate;&lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getName() {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setName(String name) {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
    }&lt;br /&gt;
    public Date getStartDate() {&lt;br /&gt;
        return startDate;&lt;br /&gt;
    }&lt;br /&gt;
    public void setStartDate(Date startDate) {&lt;br /&gt;
        this.startDate = startDate;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Employee id: &amp;quot; + getId() + &amp;quot; name: &amp;quot; + getName();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@Entity&lt;br /&gt;
class ContractEmployee extends Employee {&lt;br /&gt;
    @Column(name=&amp;quot;DAILY_RATE&amp;quot;)&lt;br /&gt;
    private int dailyRate;&lt;br /&gt;
    private int term;&lt;br /&gt;
    &lt;br /&gt;
    public int getDailyRate() {&lt;br /&gt;
        return dailyRate;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setDailyRate(int dailyRate) {&lt;br /&gt;
        this.dailyRate = dailyRate;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public int getTerm() {&lt;br /&gt;
        return term;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setTerm(int term) {&lt;br /&gt;
        this.term = term;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;ContractEmployee id: &amp;quot; + getId() + &amp;quot; name: &amp;quot; + getName();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@Entity(name=&amp;quot;PTEmp&amp;quot;)&lt;br /&gt;
@DiscriminatorValue(&amp;quot;PTEmp&amp;quot;)&lt;br /&gt;
class PartTimeEmployee extends Employee {&lt;br /&gt;
    @Column(name=&amp;quot;HOURLY_RATE&amp;quot;)&lt;br /&gt;
    private float hourlyRate;&lt;br /&gt;
    public float getHourlyRate() {&lt;br /&gt;
        return hourlyRate;&lt;br /&gt;
    }&lt;br /&gt;
    public void setHourlyRate(float hourlyRate) {&lt;br /&gt;
        this.hourlyRate = hourlyRate;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;PartTimeEmployee id: &amp;quot; + getId() + &amp;quot; name: &amp;quot; + getName();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Sql ResultSet Mapping With Entity And Column ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Employee.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import javax.persistence.Column;&lt;br /&gt;
import javax.persistence.ColumnResult;&lt;br /&gt;
import javax.persistence.Entity;&lt;br /&gt;
import javax.persistence.EntityResult;&lt;br /&gt;
import javax.persistence.FieldResult;&lt;br /&gt;
import javax.persistence.Id;&lt;br /&gt;
import javax.persistence.JoinColumn;&lt;br /&gt;
import javax.persistence.ManyToOne;&lt;br /&gt;
import javax.persistence.OneToMany;&lt;br /&gt;
import javax.persistence.OneToOne;&lt;br /&gt;
import javax.persistence.SqlResultSetMapping;&lt;br /&gt;
import javax.persistence.SqlResultSetMappings;&lt;br /&gt;
import javax.persistence.Table;&lt;br /&gt;
@Entity&lt;br /&gt;
@Table(name=&amp;quot;EMP&amp;quot;)&lt;br /&gt;
@SqlResultSetMappings({&lt;br /&gt;
  @SqlResultSetMapping(&lt;br /&gt;
      name=&amp;quot;DepartmentSummary&amp;quot;,&lt;br /&gt;
      entities={@EntityResult(entityClass=Department.class,&lt;br /&gt;
                              fields=@FieldResult(name=&amp;quot;name&amp;quot;, column=&amp;quot;DEPT_NAME&amp;quot;)),&lt;br /&gt;
                @EntityResult(entityClass=Employee.class)},&lt;br /&gt;
      columns={@ColumnResult(name=&amp;quot;TOT_EMP&amp;quot;),&lt;br /&gt;
               @ColumnResult(name=&amp;quot;AVG_SAL&amp;quot;)}&lt;br /&gt;
  )&lt;br /&gt;
})&lt;br /&gt;
public class Employee {&lt;br /&gt;
    @Id&lt;br /&gt;
    @Column(name=&amp;quot;EMP_ID&amp;quot;)&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    &lt;br /&gt;
    @OneToOne&lt;br /&gt;
    private Address address;&lt;br /&gt;
    &lt;br /&gt;
    @ManyToOne&lt;br /&gt;
    @JoinColumn(name=&amp;quot;DEPT_ID&amp;quot;)&lt;br /&gt;
    private Department department;&lt;br /&gt;
    &lt;br /&gt;
    @ManyToOne&lt;br /&gt;
    @JoinColumn(name=&amp;quot;MANAGER_ID&amp;quot;)&lt;br /&gt;
    private Employee manager;&lt;br /&gt;
    &lt;br /&gt;
    @OneToMany(mappedBy=&amp;quot;manager&amp;quot;)&lt;br /&gt;
    private Collection&amp;lt;Employee&amp;gt; directs = new ArrayList&amp;lt;Employee&amp;gt;();&lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getName() {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setName(String name) {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Address getAddress() {&lt;br /&gt;
        return address;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setAddress(Address address) {&lt;br /&gt;
        this.address = address; &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Department getDepartment() {&lt;br /&gt;
        return department;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setDepartment(Department department) {&lt;br /&gt;
        this.department = department;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Collection&amp;lt;Employee&amp;gt; getDirects() {&lt;br /&gt;
        return directs;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void addDirect(Employee employee) {&lt;br /&gt;
        if (!getDirects().contains(employee)) {&lt;br /&gt;
            getDirects().add(employee);&lt;br /&gt;
            if (employee.getManager() != null) {&lt;br /&gt;
                employee.getManager().getDirects().remove(employee);&lt;br /&gt;
            }&lt;br /&gt;
            employee.setManager(this);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Employee getManager() {&lt;br /&gt;
        return manager;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setManager(Employee manager) {&lt;br /&gt;
        this.manager = manager;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@Entity&lt;br /&gt;
class Department {&lt;br /&gt;
    @Id &lt;br /&gt;
    private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getName() {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setName(String deptName) {&lt;br /&gt;
        this.name = deptName;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Department id: &amp;quot; + getId() + &lt;br /&gt;
               &amp;quot;, name: &amp;quot; + getName();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
@Entity&lt;br /&gt;
class Address {&lt;br /&gt;
    @Id&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String street;&lt;br /&gt;
    private String city;&lt;br /&gt;
    private String state;&lt;br /&gt;
    private String zip;&lt;br /&gt;
    &lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getStreet() {&lt;br /&gt;
        return street;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setStreet(String address) {&lt;br /&gt;
        this.street = address;&lt;br /&gt;
    }&lt;br /&gt;
    public String getCity() {&lt;br /&gt;
        return city;&lt;br /&gt;
    }&lt;br /&gt;
    public void setCity(String city) {&lt;br /&gt;
        this.city = city;&lt;br /&gt;
    }&lt;br /&gt;
    public String getState() {&lt;br /&gt;
        return state;&lt;br /&gt;
    }&lt;br /&gt;
    public void setState(String state) {&lt;br /&gt;
        this.state = state;&lt;br /&gt;
    }&lt;br /&gt;
    public String getZip() {&lt;br /&gt;
        return zip;&lt;br /&gt;
    }&lt;br /&gt;
    public void setZip(String zip) {&lt;br /&gt;
        this.zip = zip;&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return &amp;quot;Address id: &amp;quot; + getId() + &lt;br /&gt;
               &amp;quot;, street: &amp;quot; + getStreet() +&lt;br /&gt;
               &amp;quot;, city: &amp;quot; + getCity() +&lt;br /&gt;
               &amp;quot;, state: &amp;quot; + getState() +&lt;br /&gt;
               &amp;quot;, zip: &amp;quot; + getZip();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Sql ResultSet Mapping With Entity Result And Field Result ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Employee.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.Collection;&lt;br /&gt;
import javax.persistence.Column;&lt;br /&gt;
import javax.persistence.Entity;&lt;br /&gt;
import javax.persistence.EntityResult;&lt;br /&gt;
import javax.persistence.FieldResult;&lt;br /&gt;
import javax.persistence.Id;&lt;br /&gt;
import javax.persistence.IdClass;&lt;br /&gt;
import javax.persistence.JoinColumn;&lt;br /&gt;
import javax.persistence.JoinColumns;&lt;br /&gt;
import javax.persistence.ManyToOne;&lt;br /&gt;
import javax.persistence.OneToMany;&lt;br /&gt;
import javax.persistence.SqlResultSetMapping;&lt;br /&gt;
import javax.persistence.Table;&lt;br /&gt;
@Entity&lt;br /&gt;
@Table(name=&amp;quot;EMP&amp;quot;)&lt;br /&gt;
@IdClass(EmployeeId.class)&lt;br /&gt;
@SqlResultSetMapping(&lt;br /&gt;
    name=&amp;quot;EmployeeAndManager&amp;quot;,&lt;br /&gt;
    entities={&lt;br /&gt;
        @EntityResult(entityClass=Employee.class),&lt;br /&gt;
        @EntityResult(&lt;br /&gt;
            entityClass=Employee.class,&lt;br /&gt;
            fields={&lt;br /&gt;
                @FieldResult(name=&amp;quot;country&amp;quot;, column=&amp;quot;MGR_COUNTRY&amp;quot;),&lt;br /&gt;
                @FieldResult(name=&amp;quot;id&amp;quot;, column=&amp;quot;MGR_ID&amp;quot;),&lt;br /&gt;
                @FieldResult(name=&amp;quot;name&amp;quot;, column=&amp;quot;MGR_NAME&amp;quot;),&lt;br /&gt;
                @FieldResult(name=&amp;quot;manager.country&amp;quot;, column=&amp;quot;MGR_MGR_COUNTRY&amp;quot;),&lt;br /&gt;
                @FieldResult(name=&amp;quot;manager.id&amp;quot;, column=&amp;quot;MGR_MGR_ID&amp;quot;)&lt;br /&gt;
            }&lt;br /&gt;
        )&lt;br /&gt;
    }&lt;br /&gt;
)&lt;br /&gt;
public class Employee {&lt;br /&gt;
    @Id private String country;&lt;br /&gt;
    @Id&lt;br /&gt;
    private int id;&lt;br /&gt;
    private String name;&lt;br /&gt;
    &lt;br /&gt;
    @ManyToOne &lt;br /&gt;
    @JoinColumns({&lt;br /&gt;
        @JoinColumn(name=&amp;quot;MANAGER_COUNTRY&amp;quot;, referencedColumnName=&amp;quot;COUNTRY&amp;quot;),&lt;br /&gt;
        @JoinColumn(name=&amp;quot;MANAGER_ID&amp;quot;, referencedColumnName=&amp;quot;ID&amp;quot;)&lt;br /&gt;
    })&lt;br /&gt;
    private Employee manager;&lt;br /&gt;
    &lt;br /&gt;
    @OneToMany(mappedBy=&amp;quot;manager&amp;quot;)&lt;br /&gt;
    private Collection&amp;lt;Employee&amp;gt; directs = new ArrayList&amp;lt;Employee&amp;gt;();&lt;br /&gt;
    public int getId() {&lt;br /&gt;
        return id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setId(int id) {&lt;br /&gt;
        this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public String getCountry() {&lt;br /&gt;
        return country;&lt;br /&gt;
    }&lt;br /&gt;
    public void setCountry(String country) {&lt;br /&gt;
        this.country = country;&lt;br /&gt;
    }&lt;br /&gt;
    public String getName() {&lt;br /&gt;
        return name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setName(String name) {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Collection&amp;lt;Employee&amp;gt; getDirects() {&lt;br /&gt;
        return directs;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public Employee getManager() {&lt;br /&gt;
        return manager;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setManager(Employee manager) {&lt;br /&gt;
        this.manager = manager;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class EmployeeId implements Serializable {&lt;br /&gt;
    private String country; &lt;br /&gt;
    private int id; &lt;br /&gt;
    public EmployeeId() {}&lt;br /&gt;
    public EmployeeId(String country, int id) {&lt;br /&gt;
      this.country = country;&lt;br /&gt;
      this.id = id;&lt;br /&gt;
    }&lt;br /&gt;
    public String getCountry() { return country; }&lt;br /&gt;
    public int getId() { return id; }&lt;br /&gt;
    public boolean equals(Object o) { &lt;br /&gt;
        return ((o instanceof EmployeeId) &amp;amp;&amp;amp; &lt;br /&gt;
                country.equals(((EmployeeId)o).getCountry()) &amp;amp;&amp;amp;&lt;br /&gt;
                id == ((EmployeeId) o).getId());&lt;br /&gt;
    }&lt;br /&gt;
    public int hashCode() { &lt;br /&gt;
        return country.hashCode() + id; &lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>