package com.cos.blog.model;

import java.sql.Timestamp;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.CreationTimestamp;

@Entity // User 클래스가 MySQL에 테이블이 생성이 된다.
public class User {
	
	@Id //Primary key
	@GeneratedValue(strategy = GenerationType.IDENTITY) // 프로젝트에서 연결된 DB의 넘버링 전략을 따라간다.
	private int id; // 시퀀스, auto_increment
	
	@Column(nullable = false, length = 30)
	private String username;
	
	@Column(nullable = false, length = 100) // 123456 => 해쉬(비밀번호 암호화)
	private String password;
	
	@Column(nullable = false, length = 50)
	private String  email;
	
	@ColumnDefault("'user'") // 문자라는 것을 알려주기 위해 싱글쿼테이션을 넣는다.
	private String role; // Enum을 쓰는게 좋다. // admin, user, manager
	
	@CreationTimestamp // 시간이 자동 입력
	private Timestamp createDate;
}

 

Enum 타입은 데이터를 도메인으로 설정 할 수 있습니다.

 

jpa:
    open-in-view: true
    hibernate:
      ddl-auto: create
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
      use-new-id-generator-mappings: false
    show-sql: true
    properties:
      hibernate.format_sql: true

ddl-auto : create -> 생성하고자 하는 테이블이 기존에 있어도 새로 만듭니다( 추후에는 update로 변경해야합니다.)

use-new-id-generator-mappings : JPA가 사용하는 기본 넘버링 전략을 선택 할 수 있습니다.

 

아래 두 속성값은 spring boot를 실행시 콘솔에 쿼리를 보여주며, 깔끔하게 정리하여 보여준다는 의미입니다.

show-sql: true
    properties:
      hibernate.format_sql: true

physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

: Entity 생성시 기입 된 내용대로 컬럼을 생성해 줍니다.

private String myEmail; // myEmail

 

physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

: Entity 생성시 언더스코어로 컬럼을 생성해 줍니다.

private String myEmail; // my_email

 

위에 대한 자세한 설명은 아래의 주소를 참고해주세요.

https://getinthere.tistory.com/20

 

스프링부트 with JPA 블로그 6강 - yaml 설정

1. yaml 이란 이 분이 설명을 너무 잘해두셔서 ㄷㄷ https://www.inflearn.com/questions/16184 yaml파일 이란 무엇인가요 - 인프런 질문 - yaml파일 이란 무엇인가요 안녕하세요 강사님 너무 질문이 많아서 죄송.

getinthere.tistory.com

 

 

강의 주소 : https://youtu.be/6ynr-XAI-rk

+ Recent posts