⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 person.java

📁 Java EE 5 许多新功能都包含经过修补的 EJB 架构
💻 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 + -