106일차_SpringBoot

서창민·2023년 8월 11일
0

SpringBoot

목록 보기
10/13
post-thumbnail

23.08.11 106일차

Spring Boot

조인 테이블을 뷰에서 보기

package com.Project0811.k7.project;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.IdClass;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import lombok.Data;
import lombok.ToString;

@Data
@Entity
@Table(name="TBL_CLASS_202308")
@ToString(exclude={"member","teacher"})
@IdClass(CLASSPK.class)
public class TBL_CLASS_202308 {
	
	
	@Id
	private String REGIST_MONTH ;
	@Id
	private String C_NO;  // - > 여기로 들어가서 아래 C_NO값이 null로 들어가는듯?
	
	private String CLASS_AREA  ;
	private Long   TUITION  ;
	
	@Column(name="TEACHER_CODE" ,nullable=false)
	private String TEACHER_CODE  ;
	
	
	@ManyToOne
	@JoinColumn(name="C_NO", referencedColumnName="C_NO",insertable=false,updatable=false) 
	private TBL_MEMBER_202308 member;
	
	
	@ManyToOne
	@JoinColumn(name="TEACHER_CODE",referencedColumnName="TEACHER_CODE",insertable=false,updatable=false)
	private TBL_TEACHER_202308 teacher;
}

멤버 테이블과 티처테이블의 조인이 된 클래스 테이블이다.
PK로 잡은 객체때문에 상당히 복잡하게 생각해서 오래걸렸고,
아직도 조금은 어렵게 느껴진다.

처음엔 REGIST_MONTH 와 C_NO로 FK 를 잡으려고 했지만
계속해서 C_NO 값에 NULL 값이 들어오면서 동작되지 않았다.

그래서 티쳐 테이블의 TEACHER_CODE와 멤버테이블의 C_NO를 외래키 제약조건의 키값으로 설정해 두었고,

그렇게 동작하니 NULL 값이 들어오지 않게되어 동작은 성공했다.
하지만 NULL 값이 왜 발생했는지는 더 고민을 해봐야할거 같다.

profile
Back-end Developer Preparation Students

0개의 댓글