
JPA는 기존의 반복 코드는 물론이고, 기본적인 SQL도
JPA가 직접 만들어서 실행해준다.
JPA를 사용하면, SQL과 데이터 중심의 설계에서
객체 중심의 설계로 패러다임을 전환할 수 있다.
JPA를 사용하면 개발 생산성을 크게 높일 수 있다.
JPA(Java Persistence API)
JPA는 자바 영역에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다.
- 즉, 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다.
왼쪽 build.gradle 클릭

dependencies 부분에 라이브러리 코드 추가하기
- JPA 라이브러리는 jdbc 라이브러리를 포함하고있다.
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

build.gradle-> 우클릭 -> Gradle -> Refresh Gradle Project
하여 라이브러리 불러오기

오른쪽 하단에 진행상황 확인

#jpa
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=none

레파지토리 생성 후 @Repository 어노테이션 추가

Service 클래스에 @Transactional 어노테이션추가

@Entity 어노테이션 추가하기



어노테이션만 사용한다면, 각각 DBMS에 맞는 전략방법으로 대상 PK 컬럼 값을 자동 증가 컬럼으로 만들어준다.@GeneratedValue(strategy = GenerationType.IDENTITY)
@SequenceGenerator(name = "mySequence", sequenceName = "member_seq", allocationSize = 1)

EntityManager로 뭐든지 동작 한다.private final EntityManager em; public JpaMemberRepository(EntityManager em) { this.em = em; } @Override public Member save(Member member) { em.persist(member); return member; } @Override public List<Member> findAll() { return em.createQuery("select m from Member m", Member.class).getResultList(); }
엔티티 객체를 대상으로 검색하는 객체지향 쿼리SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않음JPQL을 분석 후 적절한 SQL을 만들어 데이터베이스를 조회