Домен
Driver
может иметь User
, но он не нужен.Ассоциация является ненаправленной.
class Driver {
private String firstName;
private String lastName;
@OneToOne
private User user;
// ...
}
class User {
private String login;
private String email;
// ...
}
Варианты использования:
1. Создание Driver
и User
для Driver
.
2. Назначение другого User
для Driver
.
Какое решение лучше?
ИСПОЛЬЗОВАНИЕ СЛУЧАЙ 1:
Вариант 1:
создайте Driver
и User
с 1 json:
{
"DriverDto": {
"firstName": "Adam",
"lastName": "Kowalski",
"UserDto": {
"login": "mylogin",
"email": "myemail@com.pl"
}
}
}
, затем проверьте сервис, если User
с таким логином уже существует, если нет, сохраните его.Следующая служба назначает User
на Driver
и сохраняет Driver
.
Вариант 2:
сначала создайте User
:
{
"UserDto": {
"login": "mylogin",
"email": "myemail@com.pl"
}
}
, затем создайте Driver
и передайте User
в Driver
только с идентификаторомUser
:
{
"DriverDto": {
"firstName": "Adam",
"lastName": "Kowalski",
"UserDto": {
"id": 1
}
}
}
ИСПОЛЬЗОВАНИЕ СЛУЧАЯ 2:
Опция 1:
, чтобы назначить другого пользователя для драйвера, должен сделать запрос на поставку с помощью json:
{
"DriverDto": {
"firstName": "Adam",
"lastName": "Kowalski",
"UserDto": {
"login": "anotherlogin",
"email": "anotheremail@com.pl"
}
}
}
, затем Сервис проверяет, существует ли Пользователь, если нет, сохраните его и установите для Водителя нового пользователя и сохраните новый Драйвер.
Вариант 2:
simillar как Вариант 1, но вместо прохождения целого User
мы передаем только идентификатор User
:
{
"DriverDto": {
"firstName": "Adam",
"lastName": "Kowalski",
"UserDto": {
"id": 2
}
}
}
Вариант 3:
сделать новый http-запрос:
...api/drivers/id=1/assignuser/id=1
Option 4:
сделать новый http-запрос:
...api/drivers/id=1/assignuser
и передать идентификатор User
в формате json:
{
"UserDto": {
"id": 1
}
}