package com.alibaba.json.demo.hibernate.data;
import com.fasterxml.jackson.annotation.JsonBackReference;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@SuppressWarnings("serial")
@Entity
@Table(name="\"ORDER\""
,catalog="classicmodels"
)
public class Order implements java.io.Serializable {
private Integer orderNumber;
private Customer customer;
private Date orderDate;
private Date requiredDate;
private Date shippedDate;
private String status;
private String comments;
private Set<OrderDetail> orderDetails = new HashSet<OrderDetail>(0);
public Order() {
}
public Order(Customer customer, Date orderDate, Date requiredDate, String status) {
this.customer = customer;
this.orderDate = orderDate;
this.requiredDate = requiredDate;
this.status = status;
}
public Order(Customer customer, Date orderDate, Date requiredDate, Date shippedDate, String status, String comments, Set<OrderDetail> orderDetails) {
this.customer = customer;
this.orderDate = orderDate;
this.requiredDate = requiredDate;
this.shippedDate = shippedDate;
this.status = status;
this.comments = comments;
this.orderDetails = orderDetails;
}
@Id @GeneratedValue(strategy=IDENTITY)
@Column(name="orderNumber", unique=true, nullable=false)
public Integer getOrderNumber() {
return this.orderNumber;
}
public void setOrderNumber(Integer orderNumber) {
this.orderNumber = orderNumber;
}
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="customerNumber", nullable=false)
@JsonBackReference("order-customer")
public Customer getCustomer() {
return this.customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
@Column(name="orderDate", nullable=false, length=19)
public Date getOrderDate() {
return this.orderDate;
}
public void setOrderDate(Date orderDate) {
this.orderDate = orderDate;
}
@Column(name="requiredDate", nullable=false, length=19)
public Date getRequiredDate() {
return this.requiredDate;
}
public void setRequiredDate(Date requiredDate) {
this.requiredDate = requiredDate;
}
@Column(name="shippedDate", length=19)
public Date getShippedDate() {
return this.shippedDate;
}
public void setShippedDate(Date shippedDate) {
this.shippedDate = shippedDate;
}
@Column(name="status", nullable=false, length=15)
public String getStatus() {
return this.status;
}
public void setStatus(String status) {
this.status = status;
}
@Column(name="comments", length=65535)
public String getComments() {
return this.comments;
}
public void setComments(String comments) {
this.comments = comments;
}
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="order")
public Set<OrderDetail> getOrderDetails() {
return this.orderDetails;
}
public void setOrderDetails(Set<OrderDetail> orderDetails) {
this.orderDetails = orderDetails;
}
}