📄 person.java
字号:
/*
* Copyright 2006 Borys Burnayev
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.rdacorp.petstore.domain;
import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Version;
/**
* @author Borys Burnayev
*/
@Entity
@Table(name = "person")
@SequenceGenerator(name = "PersonSeq", sequenceName = "sq_person")
public class Person {
private Integer personId;
private String firstName;
private String lastName;
private String emailAddress;
private String phoneNumber;
private Integer enableMylist;
private Integer enableTips;
private Category favoriteCategory;
private Language preferredLanguage;
private Collection<Order> billedOrders;
private Collection<Order> shippedOrders;
private Account account;
private UserProfile userProfile;
private int version;
@Column(name = "row_version")
@Version
public int getVersion() {
return version;
}
public void setVersion(int version) {
this.version = version;
}
public Person(String firstName, String lastName, String emailAddress, String phoneNumber, Integer enableMylist,
Integer enableTips, Category favoriteCategory, Language preferredLanguage) {
this();
this.firstName = firstName;
this.lastName = lastName;
this.emailAddress = emailAddress;
this.phoneNumber = phoneNumber;
this.enableMylist = enableMylist;
this.enableTips = enableTips;
this.favoriteCategory = favoriteCategory;
this.preferredLanguage = preferredLanguage;
}
public Person(String firstName, String lastName, String emailAddress, String phoneNumber) {
this();
this.firstName = firstName;
this.lastName = lastName;
this.emailAddress = emailAddress;
this.phoneNumber = phoneNumber;
}
public Person() {
billedOrders = new ArrayList<Order>(1);
shippedOrders = new ArrayList<Order>(1);
}
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "PersonSeq")
@Column(name = "person_sysid")
public Integer getPersonId() {
return this.personId;
}
public void setPersonId(Integer personId) {
this.personId = personId;
}
@Column(name = "first_name")
public String getFirstName() {
return this.firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@Column(name = "last_name")
public String getLastName() {
return this.lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Column(name = "email_address")
public String getEmailAddress() {
return this.emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
@Column(name = "phone_number")
public String getPhoneNumber() {
return this.phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
@Column(name = "enable_mylist")
public Integer getEnableMylist() {
return this.enableMylist;
}
public void setEnableMylist(Integer enableMylist) {
this.enableMylist = enableMylist;
}
@Column(name = "enable_tips")
public Integer getEnableTips() {
return this.enableTips;
}
public void setEnableTips(Integer enableTips) {
this.enableTips = enableTips;
}
@ManyToOne
@JoinColumn(name = "preferred_category_sysid", referencedColumnName = "product_category_sysid")
public Category getFavoriteCategory() {
return this.favoriteCategory;
}
public void setFavoriteCategory(Category favoriteCategory) {
this.favoriteCategory = favoriteCategory;
}
@ManyToOne
@JoinColumn(name = "preferred_language_sysid", referencedColumnName = "language_id")
public Language getPreferredLanguage() {
return this.preferredLanguage;
}
public void setPreferredLanguage(Language preferredLanguage) {
this.preferredLanguage = preferredLanguage;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "billingPerson")
public Collection<Order> getBilledOrders() {
return this.billedOrders;
}
public void setBilledOrders(Collection<Order> billedOrders) {
this.billedOrders = billedOrders;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "shippingPerson")
public Collection<Order> getShippedOrders() {
return this.shippedOrders;
}
public void setShippedOrders(Collection<Order> shippedOrders) {
this.shippedOrders = shippedOrders;
}
@OneToOne(mappedBy = "person")
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account;
}
@OneToOne(cascade = { CascadeType.MERGE, CascadeType.PERSIST }, mappedBy = "person")
public UserProfile getUserProfile() {
return userProfile;
}
public void setUserProfile(UserProfile userProfile) {
this.userProfile = userProfile;
}
public String toString() {
String id = personId != null ? personId.toString() : "<no ID>";
return "Person " + id + ":\nFirst Name: " + firstName + "\nLast Name: " + lastName + "\nEmail: " + emailAddress
+ "\nPhone Number: " + phoneNumber + "\nEnable My List: " + enableMylist + "\nEnable Tips: "
+ enableTips + "\n" + favoriteCategory + preferredLanguage;
}
public boolean equals(Object object) {
if (!(object instanceof Person))
return false;
Person person = (Person) object;
return firstName.equals(person.getFirstName()) && lastName.equals(person.getLastName())
&& emailAddress.equals(person.getEmailAddress()) && phoneNumber.equals(person.getPhoneNumber());
}
public int hashCode() {
return emailAddress.hashCode();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -