강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của digitcomgisul
digitcomgisul

câu hỏi đã được viết

Thực hành! Dữ liệu Spring JPA

Ràng buộc tham số

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

Viết

·

372

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-bootjavaJPAspring

Câu trả lời 2

1

yh님의 프로필 이미지
yh
Người chia sẻ kiến thức

안녕하세요. 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님의 프로필 이미지
digitcom
Người đặt câu hỏi

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

Hình ảnh hồ sơ của digitcomgisul
digitcomgisul

câu hỏi đã được viết

Đặt câu hỏi