Обзор JPA 😕 база
Что такое JPA простыми словами?
Стандарт, позволяющий работать с БД через Java-объекты (сущности), а не писать SQL руками для каждой операции.
Обзор JPA 😕 база
Чем ORM удобнее «голого» SQL?
Маппит таблицы на классы: пишешь с объектами, меньше рутинного SQL. Но важно понимать, что происходит под капотом.
Обзор JPA 🤓 уверенно
Чем JPA удобнее JDBC?
Меньше шаблонного кода: не пишешь вручную маппинг ResultSet, управление соединениями и базовый CRUD — это берёт на себя ORM.
Обзор JPA 🤓 уверенно
Как объявить сущность в JPA?
Класс помечают @Entity, поле-идентификатор — @Id (часто с @GeneratedValue).
Обзор JPA 🧐 глубоко
Какие стратегии наследования поддерживает JPA?
Обзор JPA 🧐 глубоко
Как сделать связь один-ко-многим в JPA?
Обзор JPA 😎 про
Как встроить нативный SQL-запрос в JPA?
Обзор JPA 😎 про
Чем отличаются оптимистичная и пессимистичная блокировки?
Hibernate: FetchType, состояния 😕 база
Что значит «ленивая загрузка» простыми словами?
Связанные данные подгружаются не сразу, а только когда к ним обратишься — экономит лишние запросы.
Hibernate: FetchType, состояния 😕 база
Зачем у сущности «состояния»?
Hibernate отслеживает: сущность новая, привязана к сессии или отвязана — от этого зависит, попадут ли изменения в БД.
Hibernate: FetchType, состояния 🤓 уверенно
Что такое FetchType?
Стратегия загрузки связи: LAZY — подгружать по требованию, EAGER — сразу вместе с сущностью.
Hibernate: FetchType, состояния 🤓 уверенно
Какие состояния entity есть в Hibernate?
Transient (новая, не в сессии), Persistent (управляемая сессией), Detached (отвязанная), Removed (помечена на удаление).
Hibernate: FetchType, состояния 🧐 глубоко
Какой FetchType по умолчанию у разных типов связей?
Hibernate: FetchType, состояния 🧐 глубоко
Что такое каскадирование (Cascade) и как оно влияет на операции?
Hibernate: FetchType, состояния 😎 про
Что такое EntityGraph и зачем он нужен?
Hibernate: FetchType, состояния 😎 про
Какие виды кэша есть в Hibernate?
N+1 и Lazy 😕 база
Что такое проблема N+1 простыми словами?
Когда вместо одного запроса ORM делает 1 запрос за списком и ещё по запросу на каждый элемент — итого N+1, и всё тормозит.
N+1 и Lazy 😕 база
Что такое LazyInitializationException по-простому?
Ошибка при попытке подгрузить ленивую связь, когда сессия с БД уже закрыта.
N+1 и Lazy 🤓 уверенно
Как базово решают проблему N+1?
Подгружать связи одним запросом — через JOIN FETCH, EntityGraph или batch-загрузку, вместо ленивой по одному.
N+1 и Lazy 🤓 уверенно
Почему возникает LazyInitializationException?
Доступ к ленивому полю происходит вне открытой транзакции/сессии — Hibernate уже не может сходить в БД.
N+1 и Lazy 🧐 глубоко
Как JPQL/HQL или EntityGraph помогают против N+1?
N+1 и Lazy 🧐 глубоко
Как обработать LazyInitializationException в Spring-приложении?
N+1 и Lazy 😎 про
Чем помогает и чем опасен Open Session In View?
N+1 и Lazy 😎 про
Как проекции (DTO) помогают против N+1?