SpringBoot_웹 MVC, DB 접근 기술 5

5w31892p·2023년 1월 13일
0

Spring

목록 보기
29/30

:: 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 사용

0개의 댓글