ManyToOne에서 @BatchSize가 동작하지 않습니다 ㅠㅠ
625
53 asked
안녕하세요. 항상 좋은 강의, 답변 주셔서 감사합니다.
이번에 여쭤보고 싶은 것은 @BatchSize가 동작하지 않는 부분에 대해서입니다.
<Order의 OrderItems> BatchSize 100 설정
@BatchSize(size = 100)
@OneToMany(mappedBy = "order", fetch = FetchType.LAZY, cascade = CascadeType.ALL) // order가 만들어지면 orderItem이 만들어지기 때문에 영속성 전이한다.
private List<OrderItem> orderItems = new ArrayList<>();
<OrderItems의 Item> BatchSize100 설정
@BatchSize(size = 100)
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "item_id")
private Item item;
위와 같이 설정을 했는데, 실제로 배치가 적용되는 것은 아래 쿼리를 확인하시면 아시겠지만 OrderItems에만 적용이 됩니다.
item는 배치 사이즈가 적용이 되지 않아 총 4번이 나가게 되고, OrderItem은 배치 사이즈가 적용되어 1번의 쿼리만 나갑니다.
다른 엔티티에도 적용해보니 정황상 ManyToOne, OneToOne 관계에서 배치 사이즈가 안 먹는거 같은데.. 혹시 item 같은 ManyToOne에는 어떻게 배치 사이즈를 적용하는지 알려주시면 감사하겠습니다
참고 :글로벌 배치 사이즈는 잘 먹습니다!
Answer 1
0
안녕하세요. 안상혁님
제가 지금 기억이 정확하지 않은데, 엔티티 자체에 @BatchSize를 걸어보시면 잘 동작할꺼에요.
참고로 실무에서는 글로벌 옵션을 주로 사용합니다.
감사합니다.
@JsonIgnore 이후 Internal Server Error가 발생하지 않습니다.
0
35
2
강의 관련 외 질문입니다.
0
93
2
SpringBoot4 + Hibernate7 모듈 등록 방법 공유
1
114
1
BeanCreationException
0
105
3
Update 후 UpdateMemberResponse 매핑할 때
0
67
1
트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?
0
116
2
페이징 + 검색조건 관련해서 질문드립니다.
0
81
1
Query Dsl Q파일 질문입니다.
0
94
1
루트 쿼리라는것은
0
69
1
메서드를 분리하는 기준
0
79
1
findAllWithMemberDelivery 메서드 질문드립니다.
0
128
3
연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략
0
98
2
fetch join과 영속화와 OSIV의 관계
0
104
2
Distinct 사용 전 결과에 대한 의문
0
127
2
레포지토리 계층에서의 트랜잭션에 대한 의문
0
67
1
영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.
0
86
2
dto 필드 속 엔티티 여부
0
73
1
뷰템플릿 사용 시
0
91
2
Result 클래스 관련 질문
0
62
1
@PostConstruct 프록시 관련 질문드립니다
0
92
1
DTO 대신 Form 사용은 안되나요?
0
144
1
OSIV ON 상태일 때
0
103
1
fetch join VS fetch join 페이징 궁금증
0
196
2
양방향 연관관계 알아보는 법?
0
113
1

