취업 준비/실전 JPA

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 셋팅

가끔개발 2023. 5. 8. 15:28

1.  Ultimate 유료 버전사용중이여서 셋팅을 한다

2.의존성 추가

★ 오류 ★

Gradle 버전과 java 버전이 맞지않아 빌드가 안되는 오류발생하였다. 

Ctrl + alt + s  설정을 연후 gradle에가서 Gradle JVM 버전을 자바 버전에 맞게 다운로드및 변경하였다.

빌드실행은 gradle에서 intellij IDEA로 변경

3. h2 database 연결

4. application.yml 설정

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/jpashop; //H2 1.4.200 버전부터 MVCC 옵션이 제거되었습니다.
    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 #스프링 부트 2.x, hibernate5
# org.hibernate.orm.jdbc.bind: trace #스프링 부트 3.x, hibernate6

5. JPA 설정

 

package jpabook.jpashop;

import jakarta.persistence.Entity;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.stereotype.Repository;

@Repository
public class MemberRepository {

    @PersistenceContext
    private EntityManager em;

    public  Long save(Member member){
        em.persist(member);
        return  member.getId();
    }
}

member를 반환하지 않고 id만 반환하는 이유 

command와 query를 분리  저장을 하면 side effect를 발생할수 있기 때문에 안만들고 아이디 정도만 조회하게 만듬