/*******************************************************************************
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2013,2014 by Peter Pilgrim, Addiscombe, Surrey, XeNoNiQUe UK
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU GPL v3.0
* which accompanies this distribution, and is available at:
* http://www.gnu.org/licenses/gpl-3.0.txt
*
* Developers:
* Peter Pilgrim -- design, development and implementation
* -- Blog: http://www.xenonique.co.uk/blog/
* -- Twitter: @peter_pilgrim
*
* Contributors:
*
*******************************************************************************/
package je7hb.basic3.jpa;
import javax.persistence.*;
import java.io.Serializable;
/**
* The type JUGMember
*
* @author Peter Pilgrim (peter)
*/
@Entity
@NamedQueries( {
@NamedQuery( name="JUGMember-findAllMembers",
query = "select object(m) from JUGMember m"
),
@NamedQuery( name="JUGMember-findByFirstAndLastName",
query = "select object(m) from JUGMember m " +
"where m.firstname = :firstname and " +
"m.lastname = :lastname"
),
@NamedQuery( name="JUGMember-findByLanguage",
query = "select object(m) from JUGMember m "+
"where m.language = :language"
),
@NamedQuery( name="JUGMember-findByExperience",
query = "select object(m) from JUGMember m "+
"where m.experience = ?1"
)
})
public class JUGMember implements Serializable {
@Id
@GeneratedValue( strategy = GenerationType.AUTO)
private long memberId;
private String firstname;
private String lastname;
private String language;
private String country;
private int experience;
public JUGMember() {
this(null,null, "Java", 0);
}
public JUGMember(String firstname, String lastname, String language, int experience) {
this( firstname, lastname, language, "England", experience );
}
public JUGMember(String firstname, String lastname, String language, String country, int experience) {
this.firstname = firstname;
this.lastname = lastname;
this.language = language;
this.country = country;
this.experience = experience;
}
public long getMemberId() {
return memberId;
}
public void setMemberId(long memberId) {
this.memberId = memberId;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public int getExperience() {
return experience;
}
public void setExperience(int experience) {
this.experience = experience;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof JUGMember)) return false;
JUGMember jugMember = (JUGMember) o;
if (experience != jugMember.experience) return false;
if (memberId != jugMember.memberId) return false;
if (country != null ? !country.equals(jugMember.country) : jugMember.country != null) return false;
if (firstname != null ? !firstname.equals(jugMember.firstname) : jugMember.firstname != null) return false;
if (language != null ? !language.equals(jugMember.language) : jugMember.language != null) return false;
if (lastname != null ? !lastname.equals(jugMember.lastname) : jugMember.lastname != null) return false;
return true;
}
@Override
public int hashCode() {
int result = (int) (memberId ^ (memberId >>> 32));
result = 31 * result + (firstname != null ? firstname.hashCode() : 0);
result = 31 * result + (lastname != null ? lastname.hashCode() : 0);
result = 31 * result + (language != null ? language.hashCode() : 0);
result = 31 * result + (country != null ? country.hashCode() : 0);
result = 31 * result + experience;
return result;
}
@Override
public String toString() {
return "JUGMember{" +
"memberId=" + memberId +
", firstname='" + firstname + '\'' +
", lastname='" + lastname + '\'' +
", language='" + language + '\'' +
", country='" + country + '\'' +
", experience=" + experience +
'}';
}
}