Jpa中一个实体类对应一张表,但实际应用中表与表之前是有关联的,有时也会关联到自身。
以企业信息表为例,她可能关联到自身(比如说有父公司,或是子公司),在比如说肯定有很多部门,那么我们定义实体类的时候可以这样:
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;
//企业名称
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<>();
}
网友评论