Jpa中一個(gè)實(shí)體類(lèi)對(duì)應(yīng)一張表,但實(shí)際應(yīng)用中表與表之前是有關(guān)聯(lián)的,有時(shí)也會(huì)關(guān)聯(lián)到自身。
以企業(yè)信息表為例,她可能關(guān)聯(lián)到自身(比如說(shuō)有父公司,或是子公司),在比如說(shuō)肯定有很多部門(mén),那么我們定義實(shí)體類(lèi)的時(shí)候可以這樣:
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è)名稱(chēng)
private String name;
//子公司
@OneToMany(mappedBy = "parentEnterprise")
private Set<Enterprise> childrenEnterprises = new HashSet<>();
//父公司
@ManyToOne
@JoinColumn(name = "parent_id")
private Enterprise parentEnterprise;
//部門(mén)
@OneToMany(targetEntity = Dept.class)
private Set<Dept> depts = new HashSet<>();
}