Перейти к содержимому

Связи сущностей и проблемы маппинга | Бесконечная рекурсия JSON | Серия собеседований по Spring B...

hosiyar

0:00 / 0:00

Связи сущностей и проблемы маппинга | Бесконечная рекурсия JSON | Серия собеседований по Spring B...

102 просмотра · 4 дня назад
hosiyar
668 подписчиков
102 просмотра · 4 дня назад
В этом видео мы обсудим **связи сущностей и проблемы сопоставления в JPA и Spring Data JPA**. Это видео № 22 из нашей **серии интервью по Spring Boot**. В предыдущих видео мы рассмотрели сопоставление сущностей, генерацию первичного ключа, слой репозитория и методы запросов. Теперь мы разберемся, как различные сущности связаны друг с другом в JPA. Темы, рассматриваемые в этом видео: 1. Что такое связи сущностей в JPA? 2. Зачем мы используем связи сущностей? 3. Что такое сопоставление `@OneToOne`? 4. Что такое сопоставление `@OneToMany`? 5. Что такое сопоставление `@ManyToOne`? 6. Что такое сопоставление `@ManyToMany`? 7. Что такое сторона-владелец связи? 8. Для чего используется `mappedBy`? 9. Что такое `@JoinColumn`? 10. Что такое проблема бесконечной рекурсии в JSON? 11. Как DTO и аннотации Jackson могут помочь? В реальных приложениях сущности не изолированы. Например: Один курс может иметь много уроков. Много уроков относятся к одному курсу. Один пользователь может иметь один профиль. Много студентов могут записаться на много курсов. Для представления этих связей в базе данных на Java JPA предоставляет аннотации, такие как: `@OneToOne` `@OneToMany` `@ManyToOne` `@ManyToMany` `@JoinColumn` `@JoinTable` Мы также обсудим одну из самых запутанных тем на собеседованиях: *Владелец и mappedBy* Владелец — это сторона, которая управляет столбцом внешнего ключа в базе данных. Атрибут `mappedBy` используется на обратной стороне и указывает на имя поля на владеющей стороне. Мы также разберемся с проблемой **бесконечной рекурсии в JSON**, которая может возникнуть, когда двунаправленные отношения между сущностями возвращаются непосредственно из REST API. Наконец, мы обсудим лучшие способы решения этой проблемы с использованием DTO и аннотаций Jackson, таких как `@JsonIgnore`, `@JsonManagedReference` и `@JsonBackReference`. Эта тема очень важна для собеседований по Java-бэкенду, Spring Boot, JPA, Hibernate и Spring Data JPA. К концу этого видео вы сможете четко объяснить отношения между сущностями JPA, сторону владельца, `mappedBy`, столбцы объединения и бесконечную рекурсию в JSON на собеседованиях. Посмотрите полный плейлист серии видеоуроков по Spring Boot:    • Spring Boot Interview Questions   Свяжитесь со мной в LinkedIn:   / deep473   Подпишитесь на **Hosiyar.com**, чтобы получать больше контента по Java, Spring Boot, разработке бэкенда, JPA, Hibernate и подготовке к собеседованиям. #SpringBoot #SpringDataJPA #Hibernate #JPA #JavaInterview #SpringBootInterviewQuestions #HosiyarDotCom