설정 - yml

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/h2db/jpashop
    username: sa
    password:
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
#        show_sql: true
        format_sql: true

logging:
  level:
    org.hibernate.SQL: debug
#    org.hibernate.type: trace

자세한 설명 참고

실제 동작하는지 확인하기

이제 실제로 동작하는지 확인해봅시다.

회원 엔티티

먼저 회원 엔티티를 하나 만듭니다. Member 클래스를 하나 만듭니다.

package jpabook.jpashop;

import lombok.Getter;
import lombok.Setter;

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

@Entity
@Getter @Setter //...1
public class Member {

    @Id @GeneratedValue
    private Long id;
    private String username;

}

자세한 설명 참고

  1. 실무에서는 가급적 setter 를 사용하지 않습니다.

    만약 꼭 변경을 해야한다면 별도의 의미있는 비즈니스 네이밍의 메서드를 사용하는게 좋습니다.

회원 리포지토리

MemberJpaRepository 를 만듭니다.

package study.datajpa.entity;

import lombok.Getter;

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

@Entity
@Getter
public class Member {

    @Id @GeneratedValue
    private Long id;

    private String username;

		//...1
    protected Member() {
    }

    public Member(String username) {
        this.username = username;
    }
}

자세한 설명 참고

  1. 기본 생성자