본문 바로가기

전체 글157

[SpringDataJPA] Auditing 엔티티를 생성, 변경할 때 변경한 사람과 시간을 추적하고 싶으면? 등록일 수정일 등록자 수정자 순수 JPA 사용 등록일, 수정일 적용 @MappedSuperclass @Getter public class JpaBaseEntity { @Column(updatable = false) private LocalDateTime createdDate; private LocalDateTime updatedDate; @PrePersist public void prePersist() { LocalDateTime now = LocalDateTime.now(); createdDate = now; updatedDate = now; } @PreUpdate public void preUpdate() { updatedDate = .. 2022. 6. 4.
[SpringDataJPA] 사용자 정의 Repository 사용자 정의 Repository 구현이 필요한 이유 스프링 데이터 JPA 리포지토리는 인터페이스만 정의하고 구현체는 스프링이 자동 생성한다. 메서드를 직접 구현해야 할 때도 있다. JPA 직접 사용 (EntityManager) 스프링 JDBC Template 사용 MyBatis 사용 데이터베이스 커넥션 직접 사용 Querydsl 사용 하지만 스프링 데이터 JPA가 제공하는 인터페이스를 직접 구현하면 구현해야 하는 기능이 너무 많다. Spring Data JPA는 필요한 메서드만 구현할 수 있는 방법을 제공한다. 다양한 이유로 인터페이스의 메서드를 직접 구현하고 싶다면? 사용자 정의 Repository 구현 (1) 사용자 정의 인터페이스 구현 public interface MemberRepositoryCu.. 2022. 6. 4.
[SpringDataJPA] 페이징 (Paging) Spring Data JPA에서는 Query Method에 페이징과 정렬 기능을 사용할 수 있도록 기능을 제공한다. Example) JpaRepository의 구현체 Class인 SimpleJpaRepository // SimpleJpaRepository public List findAll(Sort sort) { return this.getQuery((Specification)null, (Sort)sort).getResultList(); } public Page findAll(Pageable pageable) { return (Page)(isUnpaged(pageable) ? new PageImpl(this.findAll()) : this.findAll((Specification)null, pageabl.. 2022. 6. 3.
[SpringDataJPA] 쿼리 메소드 (Query Method) Query Method 란? Spring Data JPA가 Method를 통해 쿼리를 생성하는 기능인 Query Method을 제공한다. Query Method 기능 3가지 메서드 이름으로 쿼리 생성 메서드 이름으로 JPA NamedQuery 호출 @Query 어노테이션을 사용해서 Repository Interface에 쿼리 직접 정의 1. 메서드 이름으로 쿼리 생성 메서드 이름을 분석해서 JPQL 쿼리 실행 (1) 사용 순수 JPA 사용 시 public List findByUsernameAndAgeGreaterThan(String username, int age) { return em.createQuery("select m from Member m where m.username = :username a.. 2022. 6. 3.
[SpringDataJPA] JpaRepository 인터페이스 Spring Data JPA 데이터 접근 계층을 개발할 때 지루하게 반복되는 CRUD 문제를 해결할 수는 방법을 제공한다. CRUD를 처리하기 위한 공통 인터페이스를 제공 Repository를 개발할 대 인터페이스만 작성하면 실행 시점에 스프링 데이터 JPA가 구현 객체를 동적으로 생성해서 주입해준다. 데이터 접근 계층을 개발할 때 구현 클래스 없이 인터페이스만 작성해도 개발을 완료할 수 있다. JpaRepository (1) JpaRepository 공통 인터페이스란? 간단한 CRUD 기능을 공통으로 처리하기 위해 Spring Data JPA가 제공하는 org.springframework.data.repository.JpaRepository 인터페이스 인터페이스의 구현체는 애플리케이션 실행 시점에 Sp.. 2022. 6. 3.
프로그래머스 데브코스 백엔드 2기 합격 후기 (서류, 코딩테스트, 면접) 글 목차 1. 서류 2. 코딩 테스트 3. 면접 4. 결과 1. 서류 (자기소개서) 자기소개서에는 총 4개의 질문이 있었다. (1) 지금까지 내가 어떻게 프로그래밍을 학습해왔는지 이야기를 들려주세요. 그리고, 지금 지원하는 데브코스에서 어떻게 꾸준히 학습을 이어나갈 계획인지 알려주세요. (공백 포함 1700자) [학습] 컴퓨터학부 복수전공 학과 공부를 통해 CS를 공부했던 점, 학교 과목을 배우면서 기술 블로그를 작성했던 점을 통해 배운점과 느낀점을 위주로 작성 하였다. 멋쟁이사자처럼 9기 멋사 활동을 통해 웹 공부, 프로젝트, 스터디 활동을 했던 것을 작성하였다. [학습계획] 코드리뷰, 스터디 활동등을 적극적으로 활동하겠다는 강조해서 적었다. (2) 프로그래머스 백엔드 분야로 진출하고자 하는 이유가 무.. 2022. 4. 2.
반응형