-
Notifications
You must be signed in to change notification settings - Fork 3
Generate entities from db #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…езначительные изменения в текст
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
По тексту в целом всё хорошо, нужно будет поменять картинки. Напишу об этом в тимс
|
||
Если вы предпочитаете сначала разработать схему базы данных, а затем реализовать JPA модель, или вам необходимо создать приложение поверх уже существующей базы данных, тогда Amplicode станет для вас чрезвычайно удобным инструментом, который сэкономит много времени и избавит от рутинной работы. | ||
|
||
 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Эта картинка не нужна
 | ||
|
||
* Все остальные настройки оставьте по умолчанию | ||
* Нажмите **GENERATE** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не надо так много скринов тут делать. Всё настраиваем на странице, обводим необходимые элементы, ставим рядом с ними цифры и описываем что в каждой цифре значит.
Примеры с цифрами можно посмотреть в этой статье: https://amplicode.ru/blog/sozdaem-crud-rest-api-v-spring-boot/
|
||
 | ||
|
||
Теперь откройте сгенерированное приложение в IntelliJ IDEA. В момент первого открытия приложения Amplicode необходимо активировать. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Отсюда "В момент первого открытия приложения Amplicode необходимо активировать." и до "Настройка подключения к БД" уже не актуально. Надо удалить
|
||
 | ||
|
||
* Благодаря действию **test connection** можно убедиться в корректности указанных параметров для источника данных. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Точно также, всё что происходит в одном диалоговом окне мы показываем на одном скриншоте с цифрами.
|
||
Также будет создано подключение к нашей базе данных. | ||
|
||
 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Этот скрин не нужен
|
||
Заполнение формы на этом завершено и теперь необходимо просто нажать **OK**. | ||
|
||
Все сущности будут сгенерированы Amplicode вместе с базовыми и ассоциативными атрибутами, а также индексом. Можно переходить к следующему шагу. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Давай добавим результат генерации
|
||
Диалоговое окно **JPA Entities from DB** предоставляет список таблиц, для которых уже есть сущности в проекте. | ||
|
||
 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Обведено не то. Надо обводить секциб Mapped Relations и она должна быть раскрыта
…, внесены минорные изменения в текст
…менить, повысила четкость (схемы модели данных)
|
||
Стоит отметить, что несмотря на то, что наши таблицы называются во множественном числе (`users`, `posts`), что является довольно распространенным подходом к именованию таблиц на уровне базы данных, на уровне JPA модели принято придерживаться именования в единственном числе. | ||
|
||
```java |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Достаточно просто в предложении выше написать в скобках (User), пример класса думаю тут будет излишним
|
||
 | ||
|
||
Последним шагом определите отдельный пакет для сущностей, введя его название в поле **Entity package**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вроде просто Package на картинке название поля
|
||
Все сущности будут сгенерированы Amplicode вместе с базовыми и ассоциативными атрибутами, а также индексом. | ||
|
||
 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Картинка не отображается
|
||
Прекрасно понимая, что наше приложение со временем будет разрастаться, можно уже сейчас улучшить нашу JPA модель и подготовиться к расширению заранее. Например, идентификатор, а также все поля, связанные с аудитом, например, дата создания и последнего изменения, а также имя пользователя, выполнявшего это самое создание и изменение, будут нужны для подавляющего большинства сущностей. | ||
|
||
 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Id и GeneratedValue тоже под обводку надо добавить. Эти аннотации относятся к id, мы их тоже будем выносить в базовый класс вместе с полем id
|
||
* Выберите опцию **Extract to MappedSuperClass** | ||
|
||
 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Контекстные окна, вроде вот этого, лучше скринить в контексте того, где они вызваны. Иначе не совсем понятно, а где именно надо эту комбинацию клавиш вызывтаь
@Column(name = "last_modified_date") | ||
private Instant lastModifiedDate; | ||
|
||
public Long getId() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вместо геттеров и сеттеров давай напишем: //Геттеры и сеттеры опущены для краткости
@OneToMany(mappedBy = "author") | ||
private Set<Post> posts = new LinkedHashSet<>(); | ||
|
||
public String getFirstName() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Аналогично тут с геттерами и сеттерами
|
||
Можно воспользоваться панелью Generate от IntelliJ IDEA. Для ее вызова следует нажать **Alt+Insert** для Widows/Linux или **⌘+N** для macOS. | ||
|
||
 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Тоже контекстное меню
|
||
 | ||
|
||
Нажмите **OK**. Новая сущность и связь "многие ко многим" будут реализованы. Кроме того, новые атрибуты будут добавлены в уже существующую сущность без изменения ранее написанного кода. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Надо показать куда была добавлена связь многие ко многим ещё. Думаю, тут можно скрином, на котором обведём новые поля, чтобы весь код не дублировать.
Можно смотреть первую версию. Картинки черновые, как и в предыдущем случае, они являются лишь подсказками дизайнеру.