package com.hongqiang.shop.modules.entity; import com.fasterxml.jackson.annotation.JsonProperty; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.PrePersist; import javax.persistence.PreUpdate; import javax.persistence.Table; import javax.validation.constraints.NotNull; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotEmpty; //收货地址 @Entity @Table(name = "hq_receiver") public class Receiver extends BaseEntity { private static final long serialVersionUID = 2673602067029665976L; public static final Integer MAX_RECEIVER_COUNT = Integer.valueOf(8);// 会员收货地址最大保存数,为null则无限制 private String consignee;// 收货人姓名 private String areaName;// 地区名称 private String address;// 地址 private String zipCode;// 邮编 private String phone;// 电话 private Boolean isDefault;// 是否默认 private Area area;// 地区 private Member member;// 会员 @JsonProperty @NotEmpty @Length(max = 200) @Column(nullable = false) public String getConsignee() { return this.consignee; } public void setConsignee(String consignee) { this.consignee = consignee; } @JsonProperty @Column(nullable = false) public String getAreaName() { return this.areaName; } public void setAreaName(String areaName) { this.areaName = areaName; } @JsonProperty @NotEmpty @Length(max = 200) @Column(nullable = false) public String getAddress() { return this.address; } public void setAddress(String address) { this.address = address; } @JsonProperty @NotEmpty @Length(max = 200) @Column(nullable = false) public String getZipCode() { return this.zipCode; } public void setZipCode(String zipCode) { this.zipCode = zipCode; } @JsonProperty @NotEmpty @Length(max = 200) @Column(nullable = false) public String getPhone() { return this.phone; } public void setPhone(String phone) { this.phone = phone; } @JsonProperty @NotNull @Column(nullable = false) public Boolean getIsDefault() { return this.isDefault; } public void setIsDefault(Boolean isDefault) { this.isDefault = isDefault; } @NotNull @ManyToOne(fetch = FetchType.LAZY) public Area getArea() { return this.area; } public void setArea(Area area) { this.area = area; } @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(nullable = false, updatable = false) public Member getMember() { return this.member; } public void setMember(Member member) { this.member = member; } @PrePersist public void prePersist() { super.prePersist(); if (getArea() != null) setAreaName(getArea().getFullName()); } @PreUpdate public void preUpdate() { super.preUpdate(); if (getArea() != null) setAreaName(getArea().getFullName()); } }