인프런 커뮤니티 질문&답변

quuu님의 프로필 이미지

작성한 질문수

JPA 1:1 연관관계 설정

21.06.24 16:18 작성

·

91

0

안녕하세요
양방향 1:1 연관관계 관련되서 이해가 잘 되지않아 문의드립니다!
부모 entity, 자식 entity가 무조건 1:1 관계인 경우
자식은 없을 수 도 있지만 부모는 항상 존재해야함으로 부모 entity가 주최가 되는게 맞는걸로 알고있는데
자식이 존재하는 경우 데이터 등록 시 부모 테이블에만 등록이 되는데
엔티티 설정이 잘못된 부분이 어디인지 잘 모르겠습니다.. ㅠㅠ
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@Entity
@Table(name = "TB_MANAGER")
@DynamicInsert
@DynamicUpdate
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class Manager  {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "MANAGER_KEY")
    @ApiModelProperty(value = "관리자 시퀀스", hidden = true, name = "managerKey")
    private Long managerKey;

    @Column(name = "MANAGER_ID")
    @ApiModelProperty(value = "관리자 아이디", name = "managerId")
    private String managerId;

    @Column(name = "PASSWORD")
    @ApiModelProperty(value = "비밀번호", name = "password")
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String password;


    @Column(name = "NAME")
    @ApiModelProperty(value = "이름", name = "name")
    private String name;

    @OneToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "MANAGER_KEY")
    private ManagerSub managerSub;
	
}

@Getter
@NoArgsConstructor(access = AccessLevel.PUBLIC)
@Entity
@Table(name = "TB_MANAGER_SUB")
@DynamicInsert
@DynamicUpdate
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class ManagerSub {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "MANAGER_SUB_KEY")
    @ApiModelProperty(value = "zzz", hidden = true, name = "managerSubKey")
    private Long managerSubKey;

    @Column(name = "MANAGER_KEY")
    private Long managerKey;

    @Column(name = "COUNT")
    @ApiModelProperty(value = "수", name = "count")
    private Long count;

    @Column(name = "PHONE")
    @ApiModelProperty(value = " 전화번호", name = "phone")
    private String phone;

    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JoinColumn(name = "MANAGER_KEY", insertable = false, updatable = false)
    private Manager manager;
	
	}

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
quuu님의 프로필 이미지

작성한 질문수

질문하기