@@ -0,0 +1,3190 @@
+/*%0A* The MIT License (MIT)%0A*%0A* Copyright (c) 2015 Joseph Hendrix%0A*%0A* Permission is hereby granted, free of charge, to any person obtaining a copy%0A* of this software and associated documentation files (the %22Software%22), to deal%0A* in the Software without restriction, including without limitation the rights%0A* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell%0A* copies of the Software, and to permit persons to whom the Software is%0A* furnished to do so, subject to the following conditions:%0A*%0A* The above copyright notice and this permission notice shall be included in all%0A* copies or substantial portions of the Software.%0A*%0A* THE SOFTWARE IS PROVIDED %22AS IS%22, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR%0A* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,%0A* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE%0A* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER%0A* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,%0A* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE%0A* SOFTWARE.%0A*%0A* Hosted on GitHub at https://github.com/hendrixjoseph/FamilyTree%0A*%0A*/%0Apackage edu.wright.hendrix11.familyTree.entity;%0A%0Aimport java.io.Serializable;%0Aimport java.util.ArrayList;%0Aimport java.util.Date;%0Aimport java.util.HashMap;%0Aimport java.util.List;%0Aimport java.util.Objects;%0Aimport javax.persistence.Column;%0Aimport javax.persistence.Entity;%0Aimport javax.persistence.FetchType;%0Aimport javax.persistence.Id;%0Aimport javax.persistence.JoinColumn;%0Aimport javax.persistence.JoinTable;%0Aimport javax.persistence.ManyToMany;%0Aimport javax.persistence.ManyToOne;%0Aimport javax.persistence.OneToMany;%0Aimport javax.persistence.Table;%0Aimport javax.persistence.Temporal;%0Aimport javax.persistence.TemporalType;%0Aimport javax.persistence.Transient;%0A%0A/**%0A *%0A * @author Joe Hendrix%0A */%0A@Entity%0A@Table(name = %22PERSON%22)%0Apublic class _Person implements Serializable%0A%7B%0A    private static final long serialVersionUID = 1L;%0A%0A    @Id%0A    private int id;%0A%0A    @ManyToOne(fetch = FetchType.LAZY)%0A    @JoinColumn(name = %22FATHER_ID%22)%0A    private Person father;%0A%0A    @ManyToOne(fetch = FetchType.LAZY)%0A    @JoinColumn(name = %22MOTHER_ID%22)%0A    private Person mother;%0A%0A    private String name;%0A    private String gender;%0A%0A    @Column(name = %22DATE_OF_BIRTH%22)%0A    @Temporal(TemporalType.DATE)%0A    private Date dateOfBirth;%0A%0A    @Column(name = %22PLACE_OF_BIRTH%22)%0A    private String placeOfBirth;%0A%0A    @Column(name = %22DATE_OF_DEATH%22)%0A    @Temporal(TemporalType.DATE)%0A    private Date dateOfDeath;%0A%0A    @Column(name = %22PLACE_OF_DEATH%22)%0A    private String placeOfDeath;%0A%0A    @ManyToMany%0A    @JoinTable(%0A        name=%22SPOUSE_VIEW%22,%0A        joinColumns=%7B@JoinColumn(name=%22ID%22, referencedColumnName=%22ID%22)%7D,%0A        inverseJoinColumns=%7B@JoinColumn(name=%22SPOUSE_ID%22, referencedColumnName=%22ID%22)%7D)%0A    private List%3CPerson%3E spouses;%0A%0A    @OneToMany(fetch = FetchType.LAZY)%0A    @JoinTable(%0A        name=%22CHILDREN_VIEW%22, %0A        joinColumns=%7B@JoinColumn(name=%22ID%22, referencedColumnName=%22ID%22)%7D, %0A        inverseJoinColumns=%7B@JoinColumn(name=%22CHILD_ID%22, referencedColumnName=%22ID%22)%7D)%0A    private List%3CPerson%3E children;%0A%7D%0A

Create _Person.java