스프링 기반 REST API 개발 -백기선님 인프런 강좌를 보고 작성하였습니다.
event 객체를 실제 DB에 저장 시키기
Event 클래스 수정
1 |
|
Event 클래스 각 위치에 @Entity @ID @GeneratedValue @Enumerated 어노테이션을 추가해준다.
@Entity
- 이 어노테이션은 해당 클래스가 엔티티임을 알리기 위해 사용합니다.
- 애플리케이션이 실행이 될 때 엔티티 자동검색을 통하여 이 어노테이션이 선언 된 클래스들은 엔티티 빈으로 등록합니다.
@Id
- 엔티티빈의 기본키를 의미합니다. 이 어노테이션은 하나의 엔티티에는 반드시 하나가 존재해야 합니다.
@GeneratedValue
- 데이터베이스에 의해 자동으로 생성된 값이라는 의미입니다.
- 즉, 프로그램 상에서 조작된 데이터가 아닌, 실제 데이터베이스에 데이터가 영속(저장)될 때 생성되는 값입니다.
@Enumerated(EnumType.STRING) - EnumType.ORDINAL을 이용하면 Enum 순서 값을 DB에 저장합니다
- EnumType.STRING을 이용하면 Enum 필드가 테이블에 저장시 숫자형인 1,2,3이 아닌, Enum의 name이 저장됩니다.
EventRepository 인터페이스 작성
1
2
3
public interface EventRepository extends JpaRepository<Event,Integer> {
}
EventController 클래스 수정
1 | "/api/events", produces = MediaTypes.HAL_JSON_UTF8_VALUE ) (value = |
EventControllerTests 클래스 수정
1 | (SpringRunner.class) |
MockBean
- MockBean으로 만든 eventRepository는 Mock객체이기때문에 save를 하여도 리턴 값이 null이다.
- 그렇기 때문에 Mockito를 사용해서 Stubbing 해주었다.