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
'프레임워크 > Spring, Spring Boot' 카테고리의 다른 글
[메타코딩] 스프링부트 강좌 20강(블로그 프로젝트) - Board테이블 생성 (1) | 2022.07.26 |
---|---|
[메타코딩] 스프링부트 강좌 19강(블로그 프로젝트) - 데이터베이스 한글인코딩 문제해결 (1) | 2022.07.26 |
[메타코딩] 스프링부트 강좌 17강(블로그 프로젝트) - yml설정하기 (1) | 2022.07.26 |
[메타코딩] 스프링부트 강좌 16강(블로그 프로젝트) - lombok세팅 및 사용해보기 (1) | 2022.07.25 |
[메타코딩] 스프링부트 강좌 15강(블로그 프로젝트) - maven이란 (1) | 2022.07.25 |