Hibernate: Передовые методы разработки
Изучите передовые методы Hibernate для сопоставления наборов, списков, Embeddable, перечислений и наследования.
Java - это backend язык программирования, следовательно, разработчиком всегда приходится работать с различными реляционными и не реляционными системами управления базами данных. На курсе по JDBC мы прошли материал, который позволяет нам без подключения дополнительных библиотек, чисто на Java Core работать с реляционными СУБД. Но мы видели, как сложно и единообразно писать маппинг сущностей из SQL запросов в базу данных и, наоборот, когда мы пытаемся сохранить какой-то Java объект в базу данных.
Другими словами говоря, мы много занимаемся рутинной работой для ORM (Object Relational Mapping).
Более того, единообразен и подход в выполнении CRUD (Create Read Update Delete) операций для всех сущностей.
И на помощь нам приходит один из самых актуальных и широко используемых в Java ORM фреймворков - Hibernate.
На этом курсе мы изучим, что такое ORM framework, что такое JPA спецификация и как к ней относится Hibernate.
Узнаем все основные маппинги сущностей, как реализованы реляционные связи в виде Java аннотаций.
Что такое SessionFactory и Session, и как найти соответствие им в JDBC.
Мы полностью пройдем жизненный цикл сущностей, узнаем их состояния и почему все вертится вокруг PersistenceContext.
Изучим два уровня кеширования в Hibernate, и как решить N+1 проблему!
Реализуем собственный слой DAO (и в чем его отличие от слоя Repository), который поможет нам разобраться с тонкостями работы транзакций и зачем использовать DTO при работе с Hibernate.
На каждом занятии мы будем заходить в исходный код, чтобы понимать, как все устроено изнутри!
Изучите передовые методы Hibernate для сопоставления наборов, списков, Embeddable, перечислений и наследования.
Новый видеокурс (изучаете в любое время), где вы создадите большой fullstack проект Angular вместе с серверными технологиями (frontend + backend). Является продолжением первого курса (основы Angular).
Hibernate является самой популярной средой Java ORM. Почти каждый проект в реальном мире сегодня использует JPA и Hibernate в сочетании с Spring Boot.
Готовы ли вы получить больше от JDBC и ваших данных, используя интеллектуальные оптимизированные методы? Этот курс Hibernate — отличное место для начала. Вы начнете с изучения объектно-реляционного сопоставления и Hibernate, а затем перейдете к изучению основ Hibernate. Оттуда Кевин научит вас базовым аннотациям сопоставления, сопоставлению составных типов и типов коллекций, а также ассоциациям сущностей.
Hibernate - это реализация JPA по умолчанию, используемая Spring Data JPA.ОБРАТИТЕ ВНИМАНИЕ: Для этого курса требуются Java 17 и Spring Boot 3.JPA означает Java Persistence API. Это общий Java API, используемый для работы с реляционными базами данных.Spring Data JPA является абстракцией, построенной поверх спецификации JPA API.Благодаря абстракции Spring Data JPA, работа с сущностями базы данных становится очень эффективной.Spring Data JPA устран
create
CREATE TABLE payment (
id BIGSERIAL PRIMARY KEY,
amount INT,
receiver_id BIGINT REFERENCES users (id)
);
id BIGSERIAL PRIMARY KEY,
DROP TABLE users;
CREATE TABLE company (
id SERIAL PRIMARY KEY,
name VARCHAR(64) NOT NULL UNIQUE
);
CREATE TABLE users (
id BIGINT PRIMARY KEY,
username VARCHAR(128) UNIQUE,
firstname VARCHAR(128),
lastname VARCHAR(128),
birth_date DATE,
role VARCHAR(128),
company_id INT REFERENCES company (id)
);
User user = User.builder()
.username("johndoe@example.com")
.firstname("john")
.lastname("doe")
.birth_date(LocalDate.of(2000, 01, 21))
.age(23)
.build();
session.persist(user);
username varchar(128) primary key,
firstname varchar(128),
lastname varchar(128),
birth_date date,
age int
);
решение у него в гитхабе
https://github.com/dmdev2020/hibernate-starter/issues/3
я опубликовал бы здесь, но тут, не позволяет редактор нормально постить сообщения и добавлять картинку :(