Связи сущностей и проблемы маппинга | Бесконечная рекурсия 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