inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

파라미터 바인딩, 벌크 연산, 쿼리힌트 질문드립니다!

199

taehee-kim-dev

작성한 질문수 21

0

안녕하세요 영한님!

강의 정말 잘 보고 있습니다.

몇 가지 궁금증이 생겨 질문드리게 되었습니다.

질문1. 파라미터 바인딩에 대해

Account findByUserId(String userId);

이 코드는

Account findByUserId(@Param("userId") String userId);

이 코드와 완전히 같고,

첫 번째 코드의 String userId의 userId를 @Param("userId")로 자동 변환해주어,

해당 부분이부분만 생략된건가요?

질문2. 벌크 연산에 대해

벌크 연산이랑 네이티브 쿼리랑 결국 같은건가요?

차이점을 모르겠습니다.

둘 다 한번에 업데이트하는것도, 영속성 컨텍스트에 반영 안되는 것도 같은 것 같아서요.

질문3. 쿼리 힌트에 대해

쿼리 힌트와 @Transactional(readOnly = true)는 같은건가요?

spring-boot JPA spring java

답변 1

1

김영한

안녕하세요. Taehee-kim-dev님^^

질문에 바로 답을 달아드릴께요.

질문1. 파라미터 바인딩에 대해

실전! 스프링 데이터 JPA 강의 초반에 설명드리는 내용을 한번 떠올려 보시면 3가지로 기능을 분류했던 기억이 나실꺼에요.

1. 공통메서드

2. 메소드 이름으로 쿼리 작성

3. @Query 사용

@Param은 @Query를 사용할 때만 적용됩니다. findByUserId()는 메소드 이름으로 쿼리를 작성하는 방법인데요. 이때는 @Param과 무관하게 순서만 맞추면 됩니다.

질문2. 벌크 연산에 대해

네 잘 파악하셨습니다. 둘은 거의 비슷하고, 차이는 네이티브 SQL을 사용하는가? 아니면 JPQL을 사용하는가?의 차이로 이해하시면 됩니다.

질문3. 쿼리 힌트에 대해

쿼리 힌트와 @Transactional(readOnly = true)는 서로 다른 기능입니다.

@Transactional(readOnly = true)는 스프링이 제공하는 트랜잭션 관리 기능이고, 여기서는 트랜잭션을 읽기 전용으로 사용하는 옵션을 넣었습니다.

반면에 쿼리 힌트는 하이버네이트 같은 JPA 구현체에게 제공하는 기능입니다. (사실 잘 사용하지는 않습니다.)

감사합니다.

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

66

1

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

103

3

MemberRepository 구현체

0

56

1

pdf 표현 질문드립니다.

0

60

1

로그가 남지 않는 문제.

0

79

1

테스트 라이브러리가 강의는 junit4가 맞나요??

0

68

2

pdf 파일과 차이점이 있는 것같은데 문제 없나요?

0

69

2

@PrePersist, @PreUpdate 호출 시점 질문드립니다.

0

91

2

Sort 인터페이스는 잘 사용 안하나요?

0

51

1

스캔대상 질문드립니다.

0

45

1

하이버네이트6에서의 최적화에 이은 질문

0

82

1

save() vs saveAndFlush DB 통신 횟수

0

51

1

순수 JPA 리포지토리 코드 수정부분

0

85

2

bulk연산 후 flush하는 이유를 모르겠어요

0

149

3

bulk insert 질문입니다.

0

174

2

교만했던 것 같아요.

0

145

1

RESTful 강의는 안하시는 건지 궁금합니다.

0

144

2

동적 테이블에 대한 질문

0

84

1

영속성 전이와 연관관계

0

130

2

강의 10:25 질문

0

72

1

단건 update 질문

0

94

2

엔티티 와 도메인의 경계

0

126

1

UsernameOnlyDto 타입 type mismatch 오류

0

118

1

Projection 개념과 데이터 전달과정에 대해 질문 있습니다.

0

135

1