본문 바로가기

WEB/Spring

Entity에 테이블 맵핑

 

https://wikidocs.net/161165

 

2-04 엔티티로 테이블 매핑하기

* `[완성 소스]` : [https://github.com/pahkey/sbb3/tree/v2.04](https://github.com/pahkey/sbb3/tree/v2.04…

wikidocs.net

 

h2 연결 이슈로 mysql 사용

 

<Question 엔티티>

 

@Entity 스프링 부트가 해당 클래스를 엔티티로 인식

 

@Id - id 속성을 기본키로 지정

@GenerateValue - 데이터를 저장할 때 해당 속성 값이 자동으로 1 씩 증가

 

Strategy=GenerationType은 해당 속성만 별도로 번호가 차례대로 증가하는 옵션 (생략되면 모든 @GenerateValue이 지정된 모든 속성에 번호를 생성)

 

@Column 열의 세부 설정을 위해 사용, 생략 가능(테이블의 열로 인식하고 싶지 않다고 클래스의 속성으로만 사용하고 싶다면 @Transient 사용)

 

 

<Answer 엔티티>

 

@ManyToOne Answer엔티티의 question 속성에 Question 엔티티를 연결한다는 어노테이션(질문과 답변이 1:N 관계)

 

반대로 Question엔티티에는 answerList를 추가해준다.

 

CascadeType.Remove 질문 하나가 사라지면 거기 달린 여러개 답변도 다 사라지게 함

mappedBy = Answer엔티티의 question 속성을 연결한다는 뜻

 

 

위의 이미지와 같이 클래스를 만들고 로컬 서버를 실행하면

 

 

DB에 테이블이 자동 생성됨!!

 

주의할것은,, @Id import할 때 

import org.springframework.data.annotation.Id;

가 아니라

import jakarta.persistence.Id;

 

이걸로 import 해야한다 ..

'WEB > Spring' 카테고리의 다른 글

Validation  (0) 2024.02.22
DTO(Data Transfer Object)  (0) 2024.02.01
active profile 설정(인텔리제이 무료 버전 기준)  (1) 2023.12.28
Dependency Injection  (0) 2023.12.21
컴포넌트 스캔 Filter  (0) 2023.12.20