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 값이 왜 발생했는지는 더 고민을 해봐야할거 같다.