package org.tests.singleTableInheritance.model;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import java.util.Set;
@Entity
@Table(name = "warehouses")
public class Warehouse {
@Id
@Column(name = "id")
private Integer id;
@ManyToOne//(optional = false) //todo: should this be nullable with assertions made?
@JoinColumn(name = "officeZoneId")
private ZoneInternal officeZone;
@ManyToMany(cascade = CascadeType.PERSIST)
@JoinTable(name = "warehousesshippingzones",
joinColumns = {@JoinColumn(name = "warehouseId", referencedColumnName = "ID")},
inverseJoinColumns = {@JoinColumn(name = "shippingZoneId", referencedColumnName = "ID")}
)
private Set<ZoneExternal> shippingZones;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public ZoneInternal getOfficeZone() {
return officeZone;
}
public void setOfficeZone(ZoneInternal officeZone) {
this.officeZone = officeZone;
}
public Set<ZoneExternal> getShippingZones() {
return shippingZones;
}
public void setShippingZones(Set<ZoneExternal> shippingZones) {
this.shippingZones = shippingZones;
}
}