//$Id$
package org.hibernate.test.annotations;
import static org.hibernate.annotations.CascadeType.ALL;
import java.io.Serializable;
import java.util.Collection;
import java.util.SortedSet;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.Sort;
import org.hibernate.annotations.SortType;
/**
* Company customer
*
* @author Emmanuel Bernard
*/
@Entity
public class Customer implements Serializable {
Long id;
String name;
SortedSet<Ticket> tickets;
Collection discountTickets;
Passport passport;
public Customer() {
}
@Id
@GeneratedValue
public Long getId() {
return id;
}
public String getName() {
return name;
}
public void setId(Long long1) {
id = long1;
}
public void setName(String string) {
name = string;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "CUST_ID")
@Sort(type = SortType.COMPARATOR, comparator = TicketComparator.class)
public SortedSet<Ticket> getTickets() {
return tickets;
}
public void setTickets(SortedSet<Ticket> tickets) {
this.tickets = tickets;
}
@OneToMany(targetEntity = org.hibernate.test.annotations.Discount.class,
cascade = CascadeType.ALL, mappedBy = "owner")
@Cascade({ALL})
public Collection getDiscountTickets() {
return discountTickets;
}
public void setDiscountTickets(Collection collection) {
discountTickets = collection;
}
@OneToOne(cascade = CascadeType.ALL)
public Passport getPassport() {
return passport;
}
public void setPassport(Passport passport) {
this.passport = passport;
}
}