[spring boot] 게시글 등록/수정/삭제/조회 API 만들기 - 03

Momenter·2021년 7월 16일
0

Spring Boot

목록 보기
8/15

게시글 조회 기능 테스트

H2 데이터 베이스 웹 콘솔 활성화 하기


application.properties에 아래와 같이 spring.h2.console.enabled=true 구문을 추가로 작성해 줍니다.

작성했다면, Application 클래스의 main 메소드를 실행 후 웹 브라우저에서 http://localhost:8080/h2-console 로 접속하여 웹 콘솔 화면을 확인해줍니다.

JDBC URL을 jdbc:h2:mem:testdb로 작성해주고 Connect 버튼을 눌러 현재 프로젝트의 H2를 관리할 수 있는 관리 페이지로 이동합니다.

프로젝트 H2 데이터베이스 관리페이지 접속 확인하기

POSTS 테이블이 정상적으로 존재하는지 확인 후 SELECT * FROM POSTS를 입력하고 Run버튼으로 조회 쿼리를 실행애 봅시다.

h2 데이터베이스는 애플리케이션이 종료 될때마다 데이터베이스에 있는 데이터들도 초기화가 되기 때문에 현재는 데이터가 없습니다. 간단한insert쿼리 실행 후 쿼리 조회가 아닌 조회 api롤 조회해 보겠습니다.

insert 쿼리 실행


위와 같이 1행을 삽입해 줍니다.

조회 api 테스트 하기

웹 브라우저에서 http://localhost:8080/api/v1/posts/1 을 입력하여 조회 기능을 테스트 해봅니다.

위와 같이 삽입한 데이터들이 조회가 된다면 조회 기능이 잘 작동하는 것 입니다.

JPA Auding으로 생성시간/수정시간 자동화하기

LocalDate 사용 BaseTimeEntity 클래스 작성하기

domain패키지에 BaseTimeEntity 클래스를 생성해 줍니다.

BaseTimeEntity 클래스 작성

package com.momenting.book.springboot.domain;

import lombok.Getter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import javax.persistence.EntityListeners;
import javax.persistence.MappedSuperclass;
import java.time.LocalDateTime;

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseTimeEntity {
    @CreatedDate
    private LocalDateTime createdDate;

    @LastModifiedDate
    private  LocalDateTime modifiedDate;
    
}
  • @MappedSuperclass : JPA Entity 클래스들이 BaseTimeEntity을 상속할 경우 createdDate, modifiedDate도 컬럼으로 인식하도록 하는 어노테이션
  • @EntityListeners(AuditingEntityListener.class) : BaseTimeEntity 클래스에 Auditing 기능을 포함시키는 어노테이션
  • @CreatedDate : Entity가 생성되어 저장될 때 시간이 자동 저장되게 합니다.
  • @LastModifiedDate : 조회한 Entity의 값을 변경할 떄 시간이 자동 변경 되게 합니다.

Posts 클래스가 BaseTimeEntity 클래스를 상속받게 변경하기

Application 클래스에 JPA Auditing 활성화 어노테이션 추가하기

profile
순간을 기록하는 개발자

0개의 댓글