Account.java

  1. package ejava.projects.esales.bo;

  2. import java.io.Serializable;
  3. import java.util.ArrayList;
  4. import java.util.List;

  5. import javax.persistence.CascadeType;
  6. import javax.persistence.Column;
  7. import javax.persistence.Entity;
  8. import javax.persistence.Id;
  9. import javax.persistence.JoinColumn;
  10. import javax.persistence.JoinTable;
  11. import javax.persistence.OneToMany;
  12. import javax.persistence.Table;

  13. /**
  14.  * This is an example eSales Account class. It will use full JPA annotations
  15.  * to define the mappings to the database. We could have also used an orm.xml
  16.  * file supplied by the DAO.
  17.  *
  18.  */
  19. @SuppressWarnings("serial")
  20. @Entity @Table(name="ESALES_ACCT")
  21. public class Account implements Serializable {
  22.     @Id @Column(name="USER_ID", length=20)
  23.     private String userId;

  24.     @Column(name="FIRST_NAME", length=20)
  25.     private String firstName;

  26.     @OneToMany(cascade=CascadeType.ALL)
  27.     @JoinTable(name="ESALES_ACCT_ADDRESS_LINK",
  28.             joinColumns=@JoinColumn(name="USER_ID"),
  29.             inverseJoinColumns=@JoinColumn(name="ADDRESS_ID"))
  30.     private List<Address> addresses = new ArrayList<Address>();
  31.    

  32.     public Account() {}   //JPA requires a no-arg ctor
  33.     public Account(String userId) {
  34.         setUserId(userId);
  35.     }
  36.     public Account(String userId, String firstName, List<Address> addresses) {
  37.         setUserId(userId);
  38.         this.firstName = firstName;
  39.         this.addresses = addresses;
  40.     }
  41.    
  42.     public String getUserId() {
  43.         return userId;
  44.     }
  45.     private void setUserId(String userId) {
  46.         this.userId = userId;
  47.     }

  48.     public String getFirstName() {
  49.         return firstName;
  50.     }
  51.     public void setFirstName(String firstName) {
  52.         this.firstName = firstName;
  53.     }

  54.     public List<Address> getAddresses() {
  55.         return addresses;
  56.     }
  57.     public void setAddresses(List<Address> addresses) {
  58.         this.addresses = addresses;
  59.     }
  60.    
  61.     public String toString() {
  62.         StringBuilder text = new StringBuilder();
  63.         text.append("userId=" + userId);
  64.         text.append(", firstName=" + firstName);
  65.         text.append(", addresses={");
  66.         for (Address a : addresses) {
  67.             text.append("{" + a + "}, ");
  68.         }
  69.         text.append("}");
  70.         return text.toString();
  71.     }
  72. }