客户实体与地址实体是单向的一对一的关系,与联系人是双向的多对多关系,与订单是双向的一对多关系,它的代码具体如下所示。
CustomerEO实体
@Entity
@Table(name = "tb_customer")
public class CustomerEO implements java.io.Serializable {
public CustomerEO() {}
private Integer id;
/**客户ID*/
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
private String name;
/**客户名称*/
@Column(name = "name")
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
private Double asset;
/**客户总资产*/
@Column(name = "asset")
public Double getAsset() {
return this.asset;
}
public void setAsset(Double asset) {
this.asset = asset;
}
private Date createDate;
/**客户创建日期*/
@Temporal(TemporalType.DATE)
@Column(name = "create_date")
public Date getCreateDate() {
return this.createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
private AddressEO address;
/**客户所属的地址*/
@OneToOne(cascade={CascadeType.ALL})
@JoinColumn(name = "address_id")
public AddressEO getAddress() {
return address;
}
public void setAddress(AddressEO address) {
this.address = address;
}
/**客户所属的联系人*/
private List contacts = new ArrayList();
@ManyToMany(targetEntity = ContactEO.class,cascade={CascadeType.ALL})
@JoinTable(name = "tb_customer_contact", joinColumns = { @JoinColumn(name = "customer_id") }, inverseJoinColumns = { @JoinColumn(name = "contact_id") })
@OrderBy("name ASC")
public List getContacts() {
return contacts;
}
public void setContacts(List contacts) {
this.contacts = contacts;
}
/**客户所属的订单*/
private Set<OrderEO> orders = new HashSet<OrderEO>();
@OneToMany(mappedBy = "customer")
public Set<OrderEO> getOrders() {
return orders;
}
public void setOrders(Set<OrderEO> orders) {
this.orders = orders;
}
}