본문 바로가기

Spring8

[JPA] 실전! 스프링 데이터 JPA Part5. 스프링 데이터 JPA 분석 / Part6. 나머지 기능들 1. 스프링 데이터 JPA 구현체 분석 - 스프링 데이터 JPA가 제공하는 공통 인터페이스의 구현체 - org.springframework.data.jpa.repository.support.SimpleJpaReposi tory @Repository @Transactional(readOnly = true) public class SimpleJpaRepository ...{ @Transactional public S save(S entity) { if (entityInformation.isNew(entity)) { em.persist(entity); return entity; } else { return em.merge(entity); } } ... } - @Repository 적용 : JPA 예외를 스프링.. 2022. 10. 13.
[JPA] 실전! 스프링 데이터 JPA Part4. 확장 기능 1. 사용자 정의 리포지토리 구현 - 스프링 데이터 JPA 리포지토리는 인터페이스만 정의하고 구현체는 스프링이 자동생성 - 스프링 데이터 JPA가 제공하는 인터페이스를 직접 구현하면 구현해야 하는 기능이 너무 많음 - 동적 쿼리를 위한 queryDsl을 사용하기 위해서 인터페이스의 메서드를 직접 구현하고 싶다면 어떻게 해야 할까? 1) 사용자 정의 인터페이스 public interface MemberRepositoryCustom { List findMemberCustom(); } 2) 사용자 정의 인터페이스 구현 클래스 @RequiredArgsConstructor public class MemberRepositoryImpl implements MemberRepositoryCustom { private f.. 2022. 10. 13.
[JPA] 실전! 스프링 데이터 JPA Part1. 예제 도메인 모델 Spring Data JPA는 JPA를 편리하게 사용하기 위해 도와주는 기술이다. 기존 JPA를 사용할 때는 JPQL 문법으로 JPA를 사용했지만, 스프링 데이터 JPA를 사용하면 보다 쉽게 JPQL을 사용할 수 있도록 도와준다. 현재 담당하고 있는 프로젝트의 경우 JPA기반의 프로젝트로 70%는 스프링 데이터 JPA를 활용하고 나머지 30%는 queryDsl을 사용한다. 스프링 데이터 JPA를 배우기 위해 인프런에서 강의를 듣고 복습할 겸 내용을 정리해보는 시간을 가져봤다. 강의는 인프런에서 김영한님이 교육해주시는 강의를 듣고 정리하였다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-JPA-.. 2022. 10. 13.
6. Spring Batch 청크 프로세스 활용 Step4 - JdbcBatchItemWriter / JpaItemWriter / ItemWriterAdapter 지금까지 ItemReader 구현체들을 통해서 DB에 있는 데이터들을 갖고오는 과정들을 진행했다면, 이번 시간에는 DB에 있는 데이터들을 갖고와서 DB에 저장하는 방법에 대해서 정리해 볼 생각이다. ​ ItemWriter와 같은 경우에도 ItemReader 구현체와 같이 여러 종류의 ItemReader의 구현체가 있지만, DB와 관련된 ItemWriter에 대해서만 정리해보자. ​ 1. JdbcBatchItemWriter JdbcCursorItemReader 설정과 마찬가지로 datasource를 지정하고, sql 속성에 실행할 쿼리를 설정 JDBC의 batch 기능을 사용하여 bulk insert/update/delete 방식으로 처리 단건 처리가 아닌 일괄처리이기 때문에 성능에 이점을 가진다 Jdbc.. 2022. 10. 3.