inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

파라미터 바인딩

컬렉션 파라미터 바인딩에 대해서 질문드립니다.

379

digitcom

작성한 질문수 4

7

컬렉션을 파라미터로 넣었는데요.

제가 넣은 컬렉션의 size보다 쿼리에서 생기는in 파라미터가 많아지는 현상이 있습니다.

2의 배수로 늘어나는것으로 보이고 제가 설정하지 않은 값은 마지막 값을 반복해서 설정하는데요. 혹시 이 현상이 왜 발생하는지 알 수 있을까요?

간략한 예입니다.

< collection size 1>

where medicine0_.id in (?)     : 1

< collection size 2>

where medicine0_.id in (?, ?)  : 1,2

< collection size 3>

where medicine0_.id in (?, ?, ?, ?) : 1,2,3,3

< collection size 4>

where medicine0_.id in(?, ?, ?, ?) : 1,2,3,4

< collection size 5>

where medicine0_.id in (?, ?, ?, ?, ?, ?, ?, ?) : 1,2,3,4,5,5,5,5

< collection size 6>

where medicine0_.id in (?, ?, ?, ?, ?, ?, ?, ?) : 1,2,3,4,5,6,6,6

< collection size 7>

where medicine0_.id in (?, ?, ?, ?, ?, ?, ?, ?) : 1,2,3,4,5,6,7,7

< collection size 8>

where medicine0_.id in (?, ?, ?, ?, ?, ?, ?, ?) : 1,2,3,4,5,6,7,8

< collection size 9>

where medicine0_.id in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) : 1,2,3,4,5,6,7,8, 9,9,9,9,9,9,9,9

spring-boot java JPA spring

답변 2

1

김영한

안녕하세요. digitcom님 좋은 질문입니다.

query.in_clause_parameter_padding 이라는 옵션이 최신 하이버네이트에서는 기본으로 켜져있기 때문에 발생하는 현상인데요.

결론부터 말씀드리면, 항상 키고 사용하는 것이 자원을 훨씬 효율적으로 사용할 수 있습니다.

자세한 내용은 다음 블로그들을 보시면 이해가 되실꺼에요^^

https://meetup.toast.com/posts/211

https://vladmihalcea.com/improve-statement-caching-efficiency-in-clause-parameter-padding/

0

digitcom

아무리 검색해도 나오지 않더니 검색어가 정확했으면 알 수 있었던 내용이네요.. ㅎㅎ (clause_parameter_padding)
친절한 답변 감사합니다. 명확하게 이해되었습니다.

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

85

1

영속성 전이와 연관관계

0

130

2

강의 10:25 질문

0

72

1

단건 update 질문

0

94

2

엔티티 와 도메인의 경계

0

126

1

UsernameOnlyDto 타입 type mismatch 오류

0

119

1

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

0

135

1