You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
Теперь можно приступать к следующему шагу - разработке JPA модели.
160
164
161
165
##Создание JPA сущностей из таблиц базы данных
162
166
@@ -194,7 +198,18 @@ Amplicode прекрасно понимает, что некоторым тип
194
198
195
199

196
200
197
-
Таким образом, в сущности`User` мы можем хранить коллекцию постов, связанных с каждым пользователем. Стоит отметить, что несмотря на то, что наши таблицы называются во множественном числе, что является довольно распространенным подходом к именованию таблиц на уровне базы данных, на уровне JPA модели принято придерживаться именования в единственном числе.
201
+
Таким образом, в сущности`User` мы можем хранить коллекцию постов, связанных с каждым пользователем.
202
+
203
+
```java
204
+
@OneToMany(mappedBy="author")
205
+
privateSet<Post> posts=newLinkedHashSet<>();
206
+
```
207
+
208
+
Стоит отметить, что несмотря на то, что наши таблицы называются во множественном числе, что является довольно распространенным подходом к именованию таблиц на уровне базы данных, на уровне JPA модели принято придерживаться именования в единственном числе.
209
+
210
+
```java
211
+
publicclassUserextendsBaseEntity {
212
+
```
198
213
199
214
Amplicode автоматически установил названия для сущностей в единственном числе.
200
215
@@ -240,7 +255,114 @@ Amplicode автоматически установил названия для
240
255
241
256
* Нажмите **OK**
242
257
243
-
`@MappedSuperclass` готов. Теперь примените аналогичные изменения и к сущности`User`.
Нажмите**OK**. Новая сущность и связь "многие ко многим" будут реализованы. Кроме того, новые атрибуты будут добавлены в уже существующую сущность без изменения ранее написанного кода.
450
+
Нажмите **OK**. Новая сущность и связь "многие ко многим" будут реализованы. Кроме того, новые атрибуты будут добавлены в уже существующую сущность без изменения ранее написанного кода.
451
+
452
+
```java
453
+
@Column(name = "email")
454
+
private String email;
455
+
456
+
@Column(name="last_activity")
457
+
privateInstant lastActivity;
458
+
459
+
publicInstantgetLastActivity() {
460
+
return lastActivity;
461
+
}
462
+
463
+
publicvoidsetLastActivity(InstantlastActivity) {
464
+
this.lastActivity= lastActivity;
465
+
}
466
+
467
+
publicStringgetEmail() {
468
+
return email;
469
+
}
470
+
471
+
publicvoidsetEmail(Stringemail) {
472
+
this.email= email;
473
+
}
474
+
```
329
475
330
476
## СозданиеJPA сущности дляDBView
331
477
@@ -354,9 +500,9 @@ GROUP BY u.id;
354
500
355
501
Нажмите **OK** сначала в маленьком окошке, а затем и большом диалоговом окне.
356
502
357
-
Сущность готова. Так как сохранять данные в представлении напрямую нельзя, необходимо отметить нашу сущность аннотацией`@Immutable`. Amplicode также знает про это иуже добавил необходимую аннотацию. Кроме того, для гарантии невозможности создания новых экземпляров этой сущности Amplicodeсгенерировал конструктор без параметров с модификатором`protected`.
503
+
Сущность готова. Так как сохранять данные в представлении напрямую нельзя, необходимо отметить нашу сущность аннотацией `@Immutable`. Amplicode также знает про это исам добавит необходимую аннотацию. Кроме того, для гарантии невозможности создания новых экземпляров этой сущности Amplicodeсгенерирует конструктор без параметров с модификатором `protected`.
358
504
359
-
Наконец, для всех полейбыли сгенерированы только геттеры, чтобы не дать разработчикам возможность изменять значения атрибутов.Подводя итог, сущность представлениябыла сгенерирована в соответствии со всеми Best Practices. Amplicodeпозаботился о качестве кода за нас.
505
+
Наконец, для всех полейбудут сгенерированы только геттеры, чтобы не дать разработчикам возможность изменять значения атрибутов.В целом, сущность представлениябудет сгенерирована в соответствии со всеми Best Practices. Amplicodeзаботится о качестве кода за нас: