JPAテーブルの作成



オブジェクトをテーブルにマッピングするテクノロジー


Userクラス

@Data
@NoArgsConstructor // bean 생성자
@AllArgsConstructor
@Builder // 빌더 패턴
@Entity // User 클래가 자동으로 MySql에 테이블 생성 맨밑에 달아주는게 좋다
public class User {
	
	@Id//Primary key 선언
	@GeneratedValue(strategy = GenerationType.IDENTITY)// jpa 넘버링전략이 아닌 프로젝트에서 연결된 DB의 넘버링 전략을 따라간다.
	private Long id; //시퀀스 , auto_increment
	
	@Column(nullable = false, length = 30) // column의 조건
	private String username;
	
	@Column(nullable = false, length = 100)
	private String password;
	
	@Column(nullable = false, length = 50)
	private String email;
	
	@ColumnDefault("'user'")// 컬럼 기본값설정 "'name'"
	private String role; // Enum을 쓰는게 좋다  admin, user, manager
	
	@CreationTimestamp // 시간 자동입력
	private Timestamp crateDate;
	
}
yamlファイル設定で実行するたびに、テープ作成後にupdateに変更
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://database-2.cthnhpqt6mil.ap-northeast-2.rds.amazonaws.com:3306/test_data?serverTimezone=Asia/Seoul
    username: root
    password: cke5507k
  
  jpa:
    open-in-view: true
    hibernate:
      ddl-auto: create # 실행할때 마다 테이블을 새로 만들겠다는 뜻! 최초에만 create => 후엔 update
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
      use-new-id-generator-mappings: false #AUTO_INCREAMENT #FALSE => jpa가 제공하는 기본넘버링 사용x
    show-sql: true
    properties:
      hibernate.format_sql: true

  jackson:
    serialization:
      fail-on-empty-beans: false  
プロジェクト実行時にconsoleでテーブルを作成するメッセージ
Hibernate: 
    
    create table User (
       id bigint not null auto_increment,
        crateDate datetime(6),
        email varchar(50) not null,
        password varchar(100) not null,
        role varchar(255) default 'user',
        username varchar(30) not null,
        primary key (id)
    ) engine=InnoDB