package com.alibaba.json.demo.hibernate.data;
import java.util.Date;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
@SuppressWarnings("serial")
@Entity
@Table(name = "Payment", catalog = "classicmodels")
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@type")
public class Payment implements java.io.Serializable
{
private PaymentId id;
private Customer customer;
private Date paymentDate;
private double amount;
public Payment() { }
public Payment(PaymentId id, Customer customer, Date paymentDate,
double amount) {
this.id = id;
this.customer = customer;
this.paymentDate = paymentDate;
this.amount = amount;
}
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "customerNumber", column = @Column(name = "customerNumber", nullable = false)),
@AttributeOverride(name = "checkNumber", column = @Column(name = "checkNumber", nullable = false, length = 50)) })
public PaymentId getId() {
return this.id;
}
public void setId(PaymentId id) {
this.id = id;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "customerNumber", nullable = false, insertable = false, updatable = false)
@JsonIgnore
public Customer getCustomer() {
return this.customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
@Column(name = "paymentDate", nullable = false, length = 19)
public Date getPaymentDate() {
return this.paymentDate;
}
public void setPaymentDate(Date paymentDate) {
this.paymentDate = paymentDate;
}
@Column(name = "amount", nullable = false, precision = 22, scale = 0)
public double getAmount() {
return this.amount;
}
public void setAmount(double amount) {
this.amount = amount;
}
}