| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
ORM (Object-Relation Mapping) – общее название для фреймворков, позволяющих автоматически связать базу данных с кодом. Они стараются скрыть существование базы данных настолько, насколько это возможно. Взамен, программисту дают возможность оперировать данными в базе через специальный интерфейс. Вместо построения SQL-запросов, программист вызывает простые методы, а всю остальную работу берёт на себя ORM.
Сущности предметной области существуют не сами по себе. Они часто зависят друг от друга. В этом домашнем задании мы будем работать с двумя связанными сущностями — с категориями и статьями. Категории связанны со статьями связью "один ко многим". Одна категория может содержать множество статей, но любая статья всегда находится только в одной категории.
Модель — это воплощение понятия предметной области в коде приложения. В Ebean каждая модель представлена классом в коде и таблицей в базе данных.
Допишите модель статьи Article.
Создайте в классе конструктор, который принимает в качестве аргументов название статьи, её содержание и категорию статьи.
Category category = ... // получаем категорию из базы
String title = "New article";
String body = "Text of article";
Article article = new Article(title, body, category);Создайте геттеры для получения значения всех полей: getId(), getTitle(), getBody(), getCategory().
Миграция в ORM — это файл, который содержит SQL-запросы, создающие схему базы данных. ORM позволяет автоматически генерировать миграции на основании моделей. Для этого нужен файл MigrationGenerator.java.
Изучите код в этом файле.
Изучите таску Gragle generateMigrations в файле build.gradle, которая запускает создание миграций.
При помощи команды gradle generateMigrations сгенерируйте миграции. Изучите получившиеся файлы миграции в директории src/main/java/exercise/resources/dbmigration.
Допишите метод showArticles(), который выводит список статей с пейджингом. Статьи должны быть отсортированы по id в порядке возрастания. В одном из предыдущих заданий мы формировали такой запрос вручную. Теперь сделайте это при помощи ORM. Для этого вам понадобится интерфейс PagedList. Получите из базы список List статей Article и установите его в качестве значения для атрибута "articles".
Допишите метод showAricle(), который выводит страницу просмотра статьи. При помощи ORM получите из базы данных статью Article по её id и установите её в качестве значения для атрибута "article".
Допишите метод newArticle(), который выводит страницу создания новой статьи. При создании новой статьи нужно будет указать категорию, к которой эта статья относится. Для этого нужно передать в шаблон список категорий. Получите список List всех категорий Category и установите его в качестве значения для атрибута "categories".
Допишите метод createArticle(), который создаёт новую статью и добавляет её в базу данных. Для создания статьи используйте созданный ранее конструктор.
| Back | FazBrowse Home | New Git URL |