본문 바로가기
Programming/SpringBoot

[Spring Boot] RESTful Service 강의 정리 (14) - Spring Data JPA를 이용한 Entity 설정과 초기 데이터 생성

by prinha 2020. 8. 25.
728x90
반응형

 

 

[Spring Boot] RESTful Service 강의 정리 (13) - JPA 사용을 위한 Dependency, h2 DataBase 추가와 설정

[Spring Boot] RESTful Service 강의 정리 (12) - JPA(Java Persistence API)와 ORM, Hibernate [Spring Boot] RESTful Service 강의 정리 (11) - Spring Security Configuration 클래스를 이용한 사용자 인증 처..

prinha.tistory.com


Creating User Entity and some test data

 

1) User 클래스(domain)에 데이터베이스 연동 어노테이션 추가

     -> Project 실행 시에 데이터베이스 자동 생성

@Entity : 해당 클래스의 이름을 가지고 데이터 테이블을 생성하고
                   해당 클래스의 필드를 가지고 테이블 생성에 필요한 정보를 얻어 컬럼을 생성함

@Id : 기본키(Primary key) 설정 
@GeneratedValue : 자동 생성되는 key값이란 의미

package com.example.restfulwebservice.user;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.validation.constraints.Past;
import javax.validation.constraints.Size;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(description = "사용자 상세 정보를 위한 도메인 객체")
@Entity
public class User {

    @Id
    @GeneratedValue
    private Integer id;

    @Size(min=2, message = "Name은 2글자 이상 입력해주세요.")
    @ApiModelProperty(notes = "사용자의 이름을 입력해주세요.")
    private String name;

    @Past
    @ApiModelProperty(notes = "사용자의 등록일을 입력해주세요.")
    private Date joinDate;

    @ApiModelProperty(notes = "사용자의 비밀번호를 입력주세요.")
    private String password;
    
    @ApiModelProperty(notes = "사용자의 주민번호를 입력해주세요.")
    private String ssn;
}

 

테이블 생성됨
테이블은 생성되었으나 안에 데이터가 없음

 

 

2) mian -> resources에 data.sql 파일 생성

 

 

 

3) insert query 작성 후 실행

insert into user values(1,sysdate(),'User1','test1111','750411-111111');
insert into user values(2,sysdate(),'User2','test2222','850411-111111');
insert into user values(3,sysdate(),'User3','test3333','950411-111111');

 

 

4)H2-Console에서 확인했을 때, 정상적으로 insert된 user 데이터 테이블

 

 

 

728x90
반응형