본문 바로가기

web +a

폼데이터를 DB에 저장하기2 | (server => DB) | JPA개념 & DTO를 Entity로 => Repository => DB까지

컨트롤러(예: ArticleController)에서 DTO => Entity => DB 처리를 할 수 있다 

 

① 폼데이터를 DTO에 저장하는 (예: @PostMapping) 메서드에서 dto.toEntity()하여 Entity객체로 저장한다. 예제에서는 Dto (ArticleForm)을 Entity (Article)로 toEntity()했다.

 

② Entity객체를 DB에 저장한다. 일단 Entity객체가 DB에 저장될 수 있도록 Entity객체에는 @Column 어노테이션이 존재한다. 아무튼 이 Entity객체는 대표값인 id 필드를 가지고 있고 id는 @GenerateValue에 의해 부여된다. 이러한 Entity객체는 Repository에 의해 id를 부여받고 DB에 저장될 수 있다.

 

* 뒤에서 배우지만 @GenerateValue 아무 설정 없이 사용하면 발생가능한 문제 :

given : 더미데이터 id = 1, 2, 3이 처음부터 들어와있을 때

when : 데이터를 맨처음 새로 create할 경우 

then : id값 1이 중복되어 오류가 난다

그래서 이후실습에서는 @GeneratedValue(strategy = GenerationType.IDENTITY) 설정을 넣는다.

자동생성 전략을 DB가 알아서 id를 적절히 부여하는 방식으로 설정하는 것이다.

 

 

@Entity

: DB가 해당 객체를 인식가능하도록 한다. DB는 Entity를 인식한다.

: 즉 해당 클래스로 DB 테이블을 만든다.

반응형
다른 블로그