:: JPA
Code
- 반복 코드, SQL까지도 JPA가 직접 만들어 실행한다.
- SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임 전환이 된다.
- 개발 생산성을 크게 높일 수 있다.
- JAP를 통한 모든 데이터 변경은 트랜잭션 안에서 실행해야 한다.
application.properties
show-sql
: JPA가 생성하는 SQL 출력
ddl-auto
: JPA는 테이블 자동 생성 기능이 있는데, none
사용하면 해당 기능 off
create
: entity 정보 바탕으로 테이블 직접 생성해준다.
:: @Transactional
- Service class 상단에 추가
- 해당 클래스 메서드 실행시 트랜잭션 시작하고, 메서드 정상 종료시 트랜잭션 commit
- 런타임 예외 발생시 롤백
:: Spring JPA
- JPA를 편하게 사용하도록 도와주는 기술
- 그러므로 JPA 먼저 공부한 후에 Spring JPA 학습
- 개발 생산성 증가
- 개발 코드 줄어듦
- 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발 가능
- CRUD 기능도 제공
- findById 와 같은 메서드 이름만으로 조회 가능
- 페이징 기능 자동 제공
:: 실무
- JPA와 스프링 데이터 JPA 기본으로 사용
- 복잡한 동적 쿼리는 Querydsl 라이브러리 사용
- Querydsl 사용하게 되면 쿼리도 자바코드도 안전하게 작성 가능
- 동적 쿼리 또한 편리하게 작성 가능
위의 조합으로도 해결이 러여룬 쿼리는 JPA가 제공하는 네이티브 쿼리나 jdbcTemplate 사용