Example 1. Excerpt from Person
                The @Entity annotation indicates that the JavaBean is a persistent entity.  JPA would automatically 
                pick up this class except the JPA configuration explicitly registers the classes each persistence unit should handle. 
                The @Table annotation indicates the table the class should be mapped to. If the property name matches the field name, a specific mapping doesn't need to be set  
                (like for the id column). The first name column needs to be explicitly set using the @Column annotation (ex: @Column(name="FIRST_NAME")) so 
                it maps to the database field FIRST_NAME.
            
                The one-to-many relationship from Person to Address is configured on public Set<Address> getAddresses(). 
                The @OneToMany(fetch=FetchType.EAGER) annotation indicates a one-to-many relationship and that any associated addresses should be eagerly fetched. 
                The @JoinColumn(name="PERSON_ID", nullable=false) annotation indicates ADDRESS.PERSON_ID is 
                the column to match against PERSON.ID to retrieve addresses associated with a person.
            
                
@Entity
@Table(name="PERSON")
public class Person implements Serializable {
    private static final long serialVersionUID = -8712872385957386182L;
    private Integer id = null;
    private String firstName = null;
    private String lastName = null;
    private Set<Address> addresses = null;
    private Date created = null;
    /**
     * Gets id (primary key).
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public Integer getId() {
        return id;
    }
    /**
     * Sets id (primary key).
     */
    public void setId(Integer id) {
        this.id = id;
    }
    /**
     * Gets first name.
     */
    @Column(name = "FIRST_NAME")
    public String getFirstName() {
        return firstName;
    }
    /**
     * Sets first name.
     */
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    /**
     * Gets last name.
     */
    @Column(name = "LAST_NAME")
    public String getLastName() {
        return lastName;
    }
    /**
     * Sets last name.
     */
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    /**
     * Gets list of <code>Address</code>es.
     */
    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "PERSON_ID", nullable = false)
    public Set<Address> getAddresses() {
        return addresses;
    }
    /**
     * Sets list of <code>Address</code>es.
     */
    public void setAddresses(Set<Address> addresses) {
        this.addresses = addresses;
    }
    /**
     * Gets date created.
     */
    public Date getCreated() {
        return created;
    }
    /**
     * Sets date created.
     */
    public void setCreated(Date created) {
        this.created = created;
    }
    ...
}
                
            Example 2. Excerpt from Address
                
@Entity
@Table(name="ADDRESS")
public class Address implements Serializable {
    private static final long serialVersionUID = 7851794269407495684L;
    private Integer id = null;
    private String address = null;
    private String city = null;
    private String state = null;
    private String zipPostal = null;
    private String country = null;
    private Date created = null;
    /**
     * Gets id (primary key).
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public Integer getId() {
        return id;
    }
    /**
     * Sets id (primary key).
     */
    public void setId(Integer id) {
        this.id = id;
    }
    /**
     * Gets address.
     */
    public String getAddress() {
        return address;
    }
    /**
     * Sets address.
     */
    public void setAddress(String address) {
        this.address = address;
    }
    /**
     * Gets city.
     */
    public String getCity() {
        return city;
    }
    /**
     * Sets city.
     */
    public void setCity(String city) {
        this.city = city;
    }
    /**
     * Gets state.
     */
    public String getState() {
        return state;
    }
    /**
     * Sets state.
     */
    public void setState(String state) {
        this.state = state;
    }
    /**
     * Gets zip or postal code.
     */
    @Column(name = "ZIP_POSTAL")
    public String getZipPostal() {
        return zipPostal;
    }
    /**
     * Sets zip or postal code.
     */
    public void setZipPostal(String zipPostal) {
        this.zipPostal = zipPostal;
    }
    /**
     * Gets country.
     */
    public String getCountry() {
        return country;
    }
    /**
     * Sets country.
     */
    public void setCountry(String country) {
        this.country = country;
    }
    /**
     * Gets date created.
     */
    public Date getCreated() {
        return created;
    }
    /**
     * Sets date created.
     */
    public void setCreated(Date created) {
        this.created = created;
    }
    ...
}