Jpa中表自关联

2017-06-26  本文已影响0人  汪汪小喵

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<>();

}
上一篇 下一篇

猜你喜欢

热点阅读