본문 바로가기
Java/Spring Boot

[Spring Boot - JPA] form Tag와 DTO, Entity, Repository - (1)

by Rezal 2022. 6. 27.

JPA의 역할

: JPA는 Server단의 Java에서 DB가 이해하는 SQL에서 생기는 언어적차이를 극복하기위해 명령을 내릴수 있게하는 도구이다.

또한 Entity, Repository 의 도구 등으로 DB 관리를 용이하게한다.

Entity, Repository의 역할은?

: Entity는 자바객체인 DTO를 DB가 이해할 수 있게 규격화한 것이고, 이는 Repository라는 일꾼을 통해 DB에 전달되고, 처리된다.

즉, DTO Entity 전환하고, Entity Repository 저장하는 형태이다.

 

 

ArticleController 의 내부코드, /articles/new과 /articles/create로 각각 form과 submit시 DTO 객체를 넘긴다.

 

/articles/new 의 ui, submit 시 /articles/create를 POST 요청한다

 

 

new.mustache : DTO객체는 form 태그 내의 element의 name property 의 이름과 DTO의 변수가 매핑된다.

 

ArticleForm : DTO, @AllArgsConstrucor와 @ToString 으로 생성자와 toString 메소드를 생성, toEntity 메소드로 DB에 저장하기 위한 Entity 로 변환한다.

 

Article : ArticleController에서 /articles/new/create POST 요청시, DTO를 @Entity 로 변환하기 위해 Entity를 위한 class 를 생성

 

ArticleRepository : CrudRepository 인터페이스를 상속하여 Entity타입인 Article타입과 Entity의 대표값인 id 의 타입인 Long 타입을 넘겨준다

 

ArticleController : /articles/create POST 요청 시, toEntity 메소드로 DTO인 ArticleForm을 변환 후 CrudRepository 인터페이스를 상속한 articleRepository의 save 메소드로 Entity로 변환된 DTO를 save한다. log.info는 @Slf4j 로 로깅하여 리팩토링하였다.

 

 

- Source Code

https://github.com/Rezalog/springboot_basic