Не используй Lombok с JPA, пока не посмотришь это видео | Amplicode
Vložit
- čas přidán 29. 06. 2024
- #Amplicode #Spring #SpringBoot #SpringData #JPA #Hibernate #IntelliJ #Java #Kotlin
Lombok действительно отличный инструмент! Одна строчка кода и все твои JPA сущности перестают корректно работать 👍
Но это только в том случае, если ты не знаешь, какие фичи Lombok можно использовать с JPA, а какие лучше не стоит.
В новом видео мы рассказали про большинство подводных камней, с которыми ты можешь столкнуться, используя JPA вместе с Lombok, а также про то, как с этими подводными камнями можно справится.
----- Таймкоды -----
00:00 - Введение. Lombok + JPA
00:25 - @EqualsAndHashCode от Lombok для JPA Entity
02:49 - Базовая реализация методов equals() и hashCode() вместе с JPA
03:49 - Верная реализация методов equals() и hashCode() для JPA Entity
06:16 - @ToString и загрузка ленивых ассоциаций
07:22 - @ToString и StackOverflowError
08:27 - @Data и её проблемы
09:20 - @Builder и @AllArgsConstructor удаляют конструктор без параметров
10:17 - Кодогенерация от Amplicode с учётом нюансов использования Lombok
11:25 - Итоги. Так ли плох Lombok?
----- Что такое Amplicode -----
Amplicode - это набор инструментов максимально эффективной и комфортной разработки сервисов и web приложений на Spring Boot в IntelliJ IDEA и административного пользовательского интерфейса на React Admin в VS Code.
----- Как установить Amplicode в IntelliJ IDEA -----
Инструкция - amplicode.ru/documentation/in...
----- Как установить Amplicode в VS Code -----
Инструкция - amplicode.ru/documentation/in...
----- Amplicode в социальных сетях -----
Сайт - amplicode.ru
Телеграм - t.me/amplicode
Телеграм-чат - t.me/amplicode_chat
Вконтакте - amplicode
GitHub - github.com/Amplicode/amplicode
Почта - info@amplicode.io - Věda a technologie
Спасибо за видео. Только начал изучать спринг, больше бы таких видосов с фишками и лучшими практиками
По кайфу брат, чёткий базар держишь, разложил для пацанов всё по полочкам. Ровный ты чувак, респект и уважуха со всего нашего района
Спасибо большое!
Какую книгу посоветуете о подобных нюансах?
объясните, почему у разных объектов одного класса будет одинаковый hashCode в вашем варианте ?
Добрый день!
Потому что в моём случае мы отталкиваемся от имени класса. А имя класса у двух объектов будет одинаковое.
Если будет прокси, то мы получим имя оригинального класса и возьмём от него хэшкод:
instanceof HibernateProxy ? ((HibernateProxy) this).getHibernateLazyInitializer().getPersistentClass().hashode()
А если будет оригинальный класс, то сразу возьмём хэшкод:
getClass().hashCode()
@@amplicode спасибо!
@@amplicode
Так если hashcode считается на основе имени класса, разве он не окажется одинаковым для абсолютно любых инстансов?