목차

  1. Dummy 데이터 입력
  2. null 데이터 처리하기
    1. 어노테이션 사용 (@DynamicInsert)
    2. Enum 사용
    3. Enum 추가 설명

 

 

 

1. Dummy 데이터 입력

  1. DAO 역할을 할 인터페이스 생성
  2. 기능(회원가입)을 수행하는 클래스에 의존성 주입 (DI)
  3. postman에 데이터 입력
  4. MySQL에 데이터가 넘어왔는지 확인
    • 'id, createDate' 은 데이터를 입력하지 않아도 자동으로 데이터가 채워진다 (auto-increment, @CreationTimestamp 때문에)
    • role은 @ColumnDefault 라서 null이 들어감 (**처리 방법은 하단에 설명)

 

1. DAO 역할을 할 인터페이스 생성

 

2. 기능(회원가입)을 수행하는 클래스에 의존성 주입 (DI)

 

3. postman에 데이터 입력

 

3. MySQL에 데이터가 넘어왔는지 확인 (role 칼럼은 null이 들어감)

 

 

 

 

 

2. null 데이터 처리하기

 

1) 어노테이션 사용 (@DynamicInsert)

  • null 이 아닌 Object 데이터를 입력하기 위해 User 클래스에 @DynamicInsert 어노테이션 사용
    • 오류, 실수를 일으킬 가능성이 있다

 

1. User 클래스에 @DynamicInsert 어노테이션 사용

 

2. role 칼럼에 Object 데이터 제대로 입력된거 확인

 

 

 

 

2) Enum 사용

  • Enum 생성
  • Enum으로 넣을 데이터 입력
  • setRole에 넣을 Enum 데이터 입력
  • role 변수 타입을 Enum으로 변경 / @Enumerated 어노테이션 사용
  • Enum 데이터 정상 입력 확인

** Enum : 데이터의 도메인을 만들 때 사용 (도메인 : 범위) / 입력할 데이터를 강제한다

 

1. Enum 생성

 

2. Enum으로 넣을 데이터 입력 (해당 데이터만 사용가능)

 

3. setRole에 넣을 Enum 데이터 입력

 

4. role 변수 타입을 Enum으로 변경 / @Enumerated 어노테이션 사용

 

5. Enum 데이터 정상 입력 확인

 

 

 

 

3) Enum 추가 설명

  1. Enum 클래스(RoleType)에 회원의 포지션을 정의(USER, ADMIN)
  2. User 클래스의 role 변수에 @Enumerated 어노테이션을 사용
  3. 어노테이션을 통해 Enum 클래스에 정의한 String만 사용 가능
  4. 회원가입시 setRole의 매개변수로 Enum에 정의한 String 중 하나를 설정하여 입력
  5. String에 입력한 값이 DB에 저장됨

 

1. RoleType 타입의 role 변수에 @Enumerated 어노테이션을 사용하여 String에 Enum 클래스(RoleType)에 정의한 'USER, ADMIN' 두 가지만 사용가능하도록 제한

 

2. join 메소드 실행시, setRole의 매개변수로 RoleType의 'USER'를 설정하여 DB에 'USER'로 저장됨

 

+ Recent posts