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을 만들어
데이터베이스를 조회