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 |