Spring Data JPA

이번 섹션부터 실무에서 자주 쓰이는 기능을 학습한다. 1. 확장 기능사용자 정의 리포지토리 구현스프링 데이터 JPA 리포지토리는 인터페이스만 정의하고, 구현체는 스프링이 자동으로 생성한다. 만약 인터페이스까지 직접 구현해야 하면 개발자가 할 일이 너무 많아진다. 그래서 인터페이스의 메서드를 직접 구현하고 싶다면 아래 방법들을 사용하면 된다.JPA 직접 사용(EntityManager)스프링 JDBC Template 사용MyBatis 사용DB 커넥션 직접 사용Querydsl 사용 참고실무에서는 주로 QueryDSL이나 SpringJdbcTemplate를 함께 사용할 때 사용자 정의 리포지토리 기능을 자주 사용한다.  사용자 정의 인터페이스를 구현하고, 구현 클래스를 만들어 보자.먼저, 사용자 정의 인터페이스..
쿼리 메서드 기능은 스프링 데이터 JPA가 제공하는 마법 같은 기능으로, 아래 3가지가 존재한다. 하나씩 학습해 보자.메서드 이름으로 쿼리 생성메서드 이름으로 JPA NamedQuery 호출@Query 애노테이션을 사용해서 리포지토리 인터페이스에 쿼리 직접 정의 1. 메서드 이름으로 쿼리 생성스프링 데이터 JPA는 메서드 이름을 분석해서 JPQL 쿼리를 실행한다. 예를 들어 이름과 나이를 기준으로 회원을 조회하는 경우, 아래와 같이 코드를 작성하면 된다.public interface MemberRepository extends JpaRepository { ... List findByUsernameAndAgeGreaterThan(String username, int age);} 참고쿼리 메서드 ..
이번 강의는 새로 학습한 내용이나 실무에서 중요하다고 하신 내용만 정리하려고 한다. 1. 예제 도메인 모델도메인 모델 동작 확인아래 코드에 적용된 롬복(Lombok)에 대해 간단하게 설명한다.@Setter실무에서는 가급적 Setter는 사용하지 않기@NoArgsConstructor(AccessLevel.PROTECTED)기본 생성자를 막고 싶어도 JPA 스펙상 PROTECTED로 열어 둬야 함@ToString가급적 연관관계가 없는 내부 필드에만 사용하기@Entity@Getter @Setter@NoArgsConstructor(access = AccessLevel.PROTECTED)@ToString(of = {"id", "username", "age"})public class Member { @Id @..
dev-meung
'Spring Data JPA' 태그의 글 목록