순환참조, 연관관계를 끊기위한 중간 테이블 만들기

박경희·2023년 8월 25일
1

프로젝트

목록 보기
9/16

MentorMentoringField

Entity

package com.example.mini.domain.mentor.entity;

import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Entity @Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Table(name = "mentor_field")
public class MentorMentoringField {

    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    private Mentor mentor;

    @ManyToOne(fetch = FetchType.LAZY)
    private MentoringField mentoringField;

    public static MentorMentoringField of(Mentor mentor, MentoringField mentoringField) {
        return MentorMentoringField.builder()
                .mentor(mentor)
                .mentoringField(mentoringField)
                .build();
    }

    @Builder
    private MentorMentoringField(Mentor mentor, MentoringField mentoringField) {
        this.mentor = mentor;
        this.mentoringField = mentoringField;
    }
}

Repository

public interface MentorMentoringFieldRepository extends JpaRepository<MentorMentoringField, Long> {![](https://velog.velcdn.com/images/qmffndoden/post/f2dc4e32-9794-4b12-85d6-91f402b516cd/image.png)

}

Request

@Getter
@AllArgsConstructor
@NoArgsConstructor
public class ConnectRequest {
    private Long mentorId;
    private List<Long> mentoringFieldId;
    private  String company;
    private  String department;
    private  String introduction;
    private  String majorCareer;
    private  String profilePicture;
}

0개의 댓글

관련 채용 정보