package com.acme.jaxrs.model;
import java.io.Serializable;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
* A <strong>Customer</strong> is an entity for whom orders are created.
*/
@Entity
@XmlRootElement
@Table(name = "customer", uniqueConstraints = @UniqueConstraint(columnNames = "name"))
public class Customer implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private Set<Contact> contacts;
private String name;
private Set<SalesOrder> orders;
public Customer() {
}
public Customer(String name) {
this.name = name;
}
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@XmlTransient
@OneToMany(mappedBy = "customer")
public Set<Contact> getContacts() {
return contacts;
}
public void setContacts(Set<Contact> contacts) {
this.contacts = contacts;
}
@NotNull
@Size(min = 3, max = 50)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlTransient
@OneToMany(mappedBy = "customer")
public Set<SalesOrder> getOrders() {
return orders;
}
public void setOrders(Set<SalesOrder> orders) {
this.orders = orders;
}
}