Jpaにおける表の自己関連付け
978 ワード
Jpaの1つのエンティティクラスは1つのテーブルに対応していますが、実際に適用されるテーブルはテーブルの前に関連しており、自身にも関連する場合があります.
企業情報テーブルを例にとると、親企業や子会社など、自分自身に関連する可能性があります.たとえば、多くの部門があるに違いありません.エンティティ・クラスを定義する場合は、次のようにします.
企業情報テーブルを例にとると、親企業や子会社など、自分自身に関連する可能性があります.たとえば、多くの部門があるに違いありません.エンティティ・クラスを定義する場合は、次のようにします.
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 childrenEnterprises = new HashSet<>();
//
@ManyToOne
@JoinColumn(name = "parent_id")
private Enterprise parentEnterprise;
//
@OneToMany(targetEntity = Dept.class)
private Set depts = new HashSet<>();
}