문서의 이전 판입니다!
batch-size
설정은 OneToMany 등의 관계에서 Many쪽 Lazy Proxy 객체를 로딩할때, 한번에 로딩할 갯수를 지정한다.
예를들면 Cat 객체가 Kitten 객체의 리스트를 Lazy로 가지고 있을 때 List<Cat>
을 돌면서 getKittens()
를 실행하면 각각의 Cat에 대해 한번씩 쿼리가 날라간다.(n + 1 problem)
하지만 @BatchSize(size = 10)
처럼 해당 관계에 설정을 해 두면, Kitten 객체를 로딩할 때 Cat id 10개씩 in
Query로 한번에 로딩한다.
hibernate.default_batch_fetch_size=100
프라퍼티 형태로 일괄 지정도 가능하다.TBD