Тестовое Java Junior Rest API Hibernate n+1

  Рет қаралды 3,944

Петр Арсентьев

Петр Арсентьев

Күн бұрын

Пікірлер: 35
@Сергей-и8ж7в
@Сергей-и8ж7в 7 ай бұрын
Супер видео, очень познавательно) Я, конечно, не много тестовых делал, но конкретно это, очевидно, на мидловскую позицию. Тем более как сказали в ролике: они даже не попросили переделать, а сразу отказали. На джунов обычно что-то типа: напишите круд для склада носков или напишите модуль фильтрации для такой-то сущности по таким-то критериям.
@j_denis
@j_denis 10 ай бұрын
Очень полезный разбор. Петр, спасибо 👍
@artemief
@artemief 9 ай бұрын
Спасибо, позновательно !💪👍
@smehoboy2310
@smehoboy2310 3 ай бұрын
На самом деле контроллер не оборачивается по дефолту в транзакцию , если не поставить явно @Transactional , но когда её поставить то будет выборка по умолчанию Lazy Также многое зависит от версии JPA и Hibernate, но Spring Data это обвертка на Hibernate это тоже на до учитывать Подход с сборкой объекта в памяти плохое решение потому что данных в базе может слишком много и она знает как это сделать эффективнее чтобы не собирать все А вытаскивая все данные из памяти вы тем самы нагружаете базу Вообще в идиале в задаче на производительность не нужно было использовать JPA А если условие с JPA то тогда Join Fetch или EntityGraph Joint Fetch должен делать один запрос , если это не так значит не правильная конфигурации, особенно если указываются ленивые коллекции в Entity Кроме того Hibernate использует различные оптимизации под капотом при агрегации в частности это связано с кешем первого уровня и временными таблицами из api базы
@job4j
@job4j 10 ай бұрын
Тестовое Java Junior Rest API Hibernate n +1 Курс по Java - job4j.ru/ Пробные собеседования в IT - checkdev.ru/
@ПавелЕфремов-м2д
@ПавелЕфремов-м2д 10 ай бұрын
Мне кажется на рынке работодатель просит Мидлов на позицию Джунов....
@geraldik
@geraldik 10 ай бұрын
В поиске высококвалифицированных низкооплачиваемых кадров))
@ДаниилЪ-б2з
@ДаниилЪ-б2з 10 ай бұрын
Вам не кажется.
@unicoxr5tj417
@unicoxr5tj417 8 ай бұрын
тебе не кажется
@BigAliFamily
@BigAliFamily 8 ай бұрын
Вам совсем не кажется. Так и есть
@Сергей-и8ж7в
@Сергей-и8ж7в 7 ай бұрын
не на позицию, а за зарплату джуна) так и есть) но согласитесь, было бы глупо с таким конкурсом на одну джуновскую вакансию не резануть зарплатную вилку по этой вакансии)
@SuperNunrg
@SuperNunrg 10 ай бұрын
для oracle есть ограничения на кол-во парметров в IN что-то вроде 1000. И запрос может упасть при пейдж сайз > 1000. Лучше наверное использовать join fetch и забирать данные одним запросом. Хотя опять же все зависит от реальных требований. Согласен, что по этому тестовому, можно было хотя бы поговорить с человеком про N+1 знает или нет. Тем более это на джуна, больше похоже на какую-то формальность со стороны компании которой люди не нужны, но нужно внутри отчитаться за процесс найма.
@вапвапвапвапва-ж1и
@вапвапвапвапва-ж1и 3 ай бұрын
Уволили? С чего бы?
@user-thienalo
@user-thienalo 8 ай бұрын
Честно говоря 2 раз пересматриваю видео и всё ещё не могу понять как была решена проблема n+1 в вашем коде, объясните пожалуйста...
@job4j
@job4j 8 ай бұрын
Мы получаем список id и уже по ним получаем сразу список объектов. то есть select from user; select from address where id in (id из первого запроса). То есть у нас 10 пользователей. Нам нужно для каждого пользователя получить его адрес. Это было 1 + 10 запросов. А так получается 1 + 1 запрос.
@iisrail
@iisrail 7 ай бұрын
Извините осталось не понятно, а почему проблему не решать с помощью fetch join
@job4j
@job4j 7 ай бұрын
Если отношения one-to-many то join fetch будет делать еще один запрос на каждый элемент select. Это в логе можно увидеть. Попробуйте.
@nizat_rum
@nizat_rum Ай бұрын
Ссылку бы на git этого решения...
@job4j
@job4j Ай бұрын
Не надо плодить эти решения. Напиши свое.
@Ерболат-н3к
@Ерболат-н3к 7 ай бұрын
Здравствуйте, может я невнимательно слушал, но тема комментариев к задачам показалась нераскрытой во второй части видео
@shjwfanshjwfan
@shjwfanshjwfan 8 ай бұрын
на мой взгляд утверждение о том, что дизайн закладывается framework-ом - не правильное, framework это всё лишь инструмент (адаптер если угодно, для того чтобы работать с HTTP, с БД и т.д.), который строиться вокруг бизнес логики у которой может быть какой угодно дизайн
@job4j
@job4j 8 ай бұрын
Фреймворки - он и переводится как рамка, то есть приложение нужно вписать в эту рамку. А вот библиотека, как раз нацелена, на то чтобы решить узкую задачу, типа работать с HTTP, базами данных и тд. Можно сделать свой каркас только из библиотек и не использовать фреймворки.
@tesgreat8958
@tesgreat8958 9 ай бұрын
не хреновое тестовое )) такие таски и за зарплату не все вытаскивают.
@unicoxr5tj417
@unicoxr5tj417 8 ай бұрын
вы нам не подходите
@Сергей-и8ж7в
@Сергей-и8ж7в 7 ай бұрын
@@unicoxr5tj417 😅
@АлександрШ-й5ж
@АлександрШ-й5ж 4 ай бұрын
@@unicoxr5tj417
@Пумпурумм
@Пумпурумм 3 ай бұрын
Очень даже понятно все с чистотой кода, здесь таблицу не указал, там колонку не указал, сям метод через одно место назвал - всё это влияет
@____8977
@____8977 10 ай бұрын
Здравствуйте, в 32 года стать java программистом реально? Около 10 лет назад очень сильно изучал Java, многое забыл, но принципы ООП понимаю.
@job4j
@job4j 10 ай бұрын
У нас ученик устроился в конце 2023 года в 55 лет. Так что в 32 года можно все.
@bbrother92
@bbrother92 2 ай бұрын
@@job4j да но ученик заканчивал физмат
@ascar66
@ascar66 10 ай бұрын
Джава доки это же и есть свагер
@whatyoumean1498
@whatyoumean1498 4 ай бұрын
Эта другое!!!!1!
@ivanstrelka3448
@ivanstrelka3448 6 ай бұрын
Очень полезный разбор. Петр, спасибо
Антишаблон Java   Optional взамен Exception
11:06
Петр Арсентьев
Рет қаралды 980
Java middle+ mock interview
58:52
Digital train | Alex Babin
Рет қаралды 4,5 М.
У вас там какие таланты ?😂
00:19
Карина Хафизова
Рет қаралды 23 МЛН
ЗНАЛИ? ТОЛЬКО ОАЭ 🤫
00:13
Сам себе сушист
Рет қаралды 4,2 МЛН
Ice Cream or Surprise Trip Around the World?
00:31
Hungry FAM
Рет қаралды 7 МЛН
Тестовое Java Junior Сервис кофейни
18:24
Петр Арсентьев
Рет қаралды 1,9 М.
Тестовое задание Сбер Java Многопоточность
12:53
Петр Арсентьев
Рет қаралды 8 М.
The N+1 Query Problem with Hibernate ORM
16:21
Bit Aligners
Рет қаралды 3,4 М.
Пишем REST API на Java с нуля
26:39
Nerzon
Рет қаралды 11 М.
Рынок IT в 2024 Рисуем опыт работы Middle+++
11:47
Петр Арсентьев
Рет қаралды 6 М.
Codium  Нейросети спешат на помощь
21:42
Петр Арсентьев
Рет қаралды 2,3 М.
Из Слесаря в Java Junior в СБЕР!
1:10:21
FAANG School
Рет қаралды 2,5 М.
У вас там какие таланты ?😂
00:19
Карина Хафизова
Рет қаралды 23 МЛН