Jpa中一個實體類對應(yīng)一張表,但實際應(yīng)用中表與表之前是有關(guān)聯(lián)的末捣,有時也會關(guān)聯(lián)到自身诽嘉。
以企業(yè)信息表為例蔚出,她可能關(guān)聯(lián)到自身(比如說有父公司,或是子公司)虫腋,在比如說肯定有很多部門骄酗,那么我們定義實體類的時候可以這樣:
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class Enterprise {
@Id
@GeneratedValue
private Long id;
//企業(yè)名稱
private String name;
//子公司
@OneToMany(mappedBy = "parentEnterprise")
private Set<Enterprise> childrenEnterprises = new HashSet<>();
//父公司
@ManyToOne
@JoinColumn(name = "parent_id")
private Enterprise parentEnterprise;
//部門
@OneToMany(targetEntity = Dept.class)
private Set<Dept> depts = new HashSet<>();
}