ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому
ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€

πŸ’‘Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠΊΠ°ΠΆΡƒ ΠΊΡ€ΡƒΡ‚ΡƒΡŽ Ρ„ΠΈΡˆΠΊΡƒ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ чтСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈΠ· Π±Π°Π·Ρ‹ Ρ‡Π΅Ρ€Π΅Π· JPA.

πŸ’‘Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠΊΠ°ΠΆΡƒ ΠΊΡ€ΡƒΡ‚ΡƒΡŽ Ρ„ΠΈΡˆΠΊΡƒ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ чтСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈΠ· Π±Π°Π·Ρ‹ Ρ‡Π΅Ρ€Π΅Π· JPA. πŸ“Œ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: Когда Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· @OneToMany, Hibernate часто Π΄Π΅Π»Π°Π΅Ρ‚ это Π»Π΅Π½ΠΈΠ²ΠΎ (LAZY), Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ доступС β€” Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ всю ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ OutOfMemoryError ΠΈΠ»ΠΈ Ρ€Π΅Π·ΠΊΠΎΠΌΡƒ ΠΏΡ€ΠΎΡΠ΅Π΄Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. πŸ“Œ РСшСниС: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΡŽ (batch-size) ΠΈΠ»ΠΈ запрос ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ порциями. Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ batch-size Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ сущности: @Entity public class User { @OneToMany(mappedBy = "user", fetch = FetchType.LAZY) @BatchSize(size = 50) private List<Order> orders; } 🧠 Π’Π΅ΠΏΠ΅Ρ€ΡŒ Hibernate Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π·Π° Ρ€Π°Π· ΠΏΠΎ 50 элСмСнтов, Π° Π½Π΅ всю ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ сразу! πŸ“Œ Или ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ глобально Ρ‡Π΅Ρ€Π΅Π· application.properties: spring.jpa.properties.hibernate.default_batch_fetch_size=50 ⚠️ Π’Π°ΠΆΠ½ΠΎ: - @BatchSize Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для LAZY-связСй. - Π­Ρ‚ΠΎ Π½Π΅ пагинация Π² SQL, Π° оптимизация Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… запросов Hibernate. - Если коллСкция огромная (100k+ записСй) β€” Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π΅Π»Π°Ρ‚ΡŒ явныС paged запросы Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. πŸ’‘ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅: Π±Π΅Π· настройки batch-size Hibernate ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π·Π°Ρ€Π°Π½Π΅Π΅! πŸ‘‰ @BookJava

554 просмотров

Канал Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€Π°

1Β 614 подписчиков Β· IT ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

Π•Ρ‰Ρ‘ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ Β«IT ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΒ»

Π§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

Π”Π²Π° Ρ€Π°Π·Π° Π² нСдСлю свСТиС посты этого ΠΊΠ°Π½Π°Π»Π° β€” Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈ Π² Π»ΠΈΡ‡Π½ΡƒΡŽ Π»Π΅Π½Ρ‚Ρƒ. Π‘Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ поиска ΠΊΠ°Π½Π°Π»Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.