FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

java-labs/java-spring-ru/spring-orm at main · vmorkhat/java-labs · GitHub

Latest commit

 

History

History

README.md

Spring ORM

В предыдущем домашнем задании мы вручную формировали запросы в базу данных при помощи JDBC. В этом домашнем задании мы будем использовать ORM

Ссылки

src/main/java/exercise/model/Person.java

Задачи

  • Допишите модель Person. Добавьте в модель приватные поля firstName и lastName с типом String, а также геттеры и сеттеры для всех полей класса. Не забудьте поставить нужную аннотацию, чтобы класс расценивался как модель.

build.gradle

В прошлом упражнении мы писали файл миграции руками. Liquibase умеет автоматически генерировать файл миграции на основании моделей, для этого нужно подключить зависимости и настроить Liquibase.

Задачи

  • Изучите файл build.gradle, обратите внимание на комментарии

  • При помощи команды make generate-migrations сгенерируйте файл миграции. Изучите получившийся файл

src/main/java/exercise/repository/PersonRepository.java

Задачи

  • Изучите класс репозитория. Обратите внимание, что он наследуется от класса CrudRepository, благодаря чему в нём уже есть различные методы для работы с данными

src/main/java/exercise/controller/PeopleController.java

  • Часть методов для работы с сущностью уже написаны в контроллере. Изучите их код, посмотрите, как происходит работа с репозиторием. Данные в теле запроса приходят в виде JSON следующего вида:
{
  "firstName": "Jain",
  "lastName": "Doe"
}

Задачи

  • Допишите метод, который обрабатывает POST-запросы по пути /people и добавляет новую сущность в базу данных. Чтобы привязать параметр метода к телу запроса, используйте аннотацию @RequestBody

  • Допишите метод, который обрабатывает DELETE-запросы по пути /people/{id} и удаляет сущность из базы. Чтобы получить id сущности из пути, используйте аннотацию @PathVariable

  • Допишите метод, который обрабатывает PATCH-запросы по пути /people/{id} и обновляет данные сущности.

Подсказки

  • Обратите внимание, что в классе модели импортирована библиотека Lombok. Вы можете использовать её аннотации, чтобы не писать геттеры и сеттеры вручную

  • Метод save() не только добавляет новую сущность в базу, но и обновляет данные уже существующей

  • Чтобы обновить сущность при помощи метода save(), потребуется установить её id. Для этого вам понадобится написанный сеттер


Back | FazBrowse Home | New Git URL