[Spring JPA] Self Join 셀프조인

Titu·2022년 2월 15일
1

Spring

목록 보기
5/5

Spring JPA Entity SelfJoin

업무 중 SelfJoin하는 엔티티 코드를 바로 이해하지 못해 간략히 study 코드를 만들어보았다.

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
public class Category {
    @Id
    private String id;

    private String name;

    private Integer level;
    private Integer sequence;

    @Column(name = "parent_id")
    private String parentId;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "parent_id", referencedColumnName = "id", insertable = false, updatable = false)
    private Category parent;

    @OneToMany(mappedBy = "parent", fetch = FetchType.LAZY)
    private List<Category> children = new ArrayList<>();

    @Override
    public String toString() {
        return "Category{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", level=" + level +
                ", sequence=" + sequence +
                ", parentId='" + parentId + '\'' +
                '}';
    }
}

@JoinColumn

  • name 속성에는 매핑할 외래키 이름을 지정한다.
  • referecedColumnName 속성에는 외래키가 참조하는 테이블의 기본키 컬럼명을 적는다.

전체 코드

https://github.com/tituvely/SelfJoin

profile
This is titu

0개의 댓글