/* * Created on: 23-Jan-2006 * Author: Dibyendu Majumdar */ package schema1.entity.tpcc; import java.math.BigDecimal; import java.sql.Timestamp; import javax.persistence.AttributeOverride; import javax.persistence.AttributeOverrides; import javax.persistence.Column; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.IdClass; import javax.persistence.JoinColumn; import javax.persistence.JoinColumns; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.persistence.TableGenerator; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Version; @Entity @Table(name = "CUSTOMER", schema = "TPCC") @IdClass(schema1.entity.tpcc.Customer.CustomerPK.class) public class Customer { int customerId; int warehouseId; int districtId; String firstName; String middleName; String lastName; Address address; String phone; Timestamp since; String credit = "GC"; BigDecimal creditLimit; BigDecimal discount; BigDecimal balance; BigDecimal ytdPayment; int paymentCount; int deliveryCount; String data; District district; int version; @Embedded @AttributeOverrides({ @AttributeOverride(name="street1", column=@Column(name="C_STREET_1")), @AttributeOverride(name="street2", column=@Column(name="C_STREET_2")), @AttributeOverride(name="city", column=@Column(name="C_CITY")), @AttributeOverride(name="state", column=@Column(name="C_STATE")), @AttributeOverride(name="zip", column=@Column(name="C_ZIP")) }) public Address getAddress() { return address; } @Column(name="C_BALANCE", precision=12, scale=2) public BigDecimal getBalance() { return balance; } @Column(name="C_CREDIT", length=2) public String getCredit() { return credit; } @Column(name="C_CREDIT_LIM", precision=12, scale=2) public BigDecimal getCreditLimit() { return creditLimit; } @Id @Column(name="C_ID", nullable=false) @TableGenerator(name = "CUSTOMER_ID_SEQUENCE", table = "IDGENERATOR", schema = "TPCC", pkColumnName = "SEQ_NAME", valueColumnName = "SEQ_COUNT", pkColumnValue = "CUSTOMER_ID_SEQUENCE", initialValue=1, allocationSize=10) @GeneratedValue(strategy = GenerationType.TABLE, generator = "CUSTOMER_ID_SEQUENCE") public int getCustomerId() { return customerId; } @Column(name="C_DATA") public String getData() { return data; } @Column(name="C_DELIVERY_CNT", length=4, precision=4) public int getDeliveryCount() { return deliveryCount; } @Column(name="C_DISCOUNT", precision=4) public BigDecimal getDiscount() { return discount; } @Id @Column(name="C_D_ID", nullable=false, insertable=false, updatable=false) public int getDistrictId() { return districtId; } @Column(name="C_PAYMENT_CNT", length=4, precision=4) public int getPaymentCount() { return paymentCount; } @Column(name="C_PHONE", length=16) public String getPhone() { return phone; } @Column(name="C_SINCE") @Temporal(TemporalType.TIMESTAMP) public Timestamp getSince() { return since; } @Id @Column(name="C_W_ID", nullable=false, insertable=false, updatable=false) public int getWarehouseId() { return warehouseId; } @Column(name="C_YTD_PAYMENT") public BigDecimal getYtdPayment() { return ytdPayment; } @ManyToOne @JoinColumns({ @JoinColumn(name="C_W_ID", referencedColumnName="D_W_ID"), @JoinColumn(name="C_D_ID", referencedColumnName="D_ID") }) public District getDistrict() { return district; } @Version @Column(name="C_VERSION") public int getVersion() { return version; } @Column(name="C_FIRST", length=16) public String getFirstName() { return firstName; } @Column(name="C_LAST", length=16) public String getLastName() { return lastName; } @Column(name="C_MIDDLE", length=2) public String getMiddleName() { return middleName; } public void setFirstName(String firstName) { this.firstName = firstName; } public void setLastName(String lastName) { this.lastName = lastName; } public void setMiddleName(String middleName) { this.middleName = middleName; } public void setVersion(int version) { this.version = version; } public void setDistrict(District district) { this.district = district; } public void setAddress(Address address) { this.address = address; } public void setBalance(BigDecimal balance) { this.balance = balance; } public void setCredit(String credit) { if (!credit.equals("GC") && !credit.equalsIgnoreCase("BC")) { throw new IllegalArgumentException(); } this.credit = credit; } public void setCreditLimit(BigDecimal creditLimit) { this.creditLimit = creditLimit; } public void setCustomerId(int customerId) { this.customerId = customerId; } public void setData(String data) { this.data = data; } public void setDeliveryCount(int deliveryCount) { this.deliveryCount = deliveryCount; } public void setDiscount(BigDecimal discount) { this.discount = discount; } public void setDistrictId(int districtId) { this.districtId = districtId; } public void setPaymentCount(int paymentCount) { this.paymentCount = paymentCount; } public void setPhone(String phone) { this.phone = phone; } public void setSince(Timestamp since) { this.since = since; } public void setWarehouseId(int warehouseId) { this.warehouseId = warehouseId; } public void setYtdPayment(BigDecimal ytdPayment) { this.ytdPayment = ytdPayment; } public static class CustomerPK { int customerId; int warehouseId; int districtId; public int getCustomerId() { return customerId; } public int getDistrictId() { return districtId; } public int getWarehouseId() { return warehouseId; } public void setCustomerId(int customerId) { this.customerId = customerId; } public void setDistrictId(int districtId) { this.districtId = districtId; } public void setWarehouseId(int warehouseId) { this.warehouseId = warehouseId; } } }