. Я создаю службу REST в структуре воспроизведения, и у меня есть маршрут, который читает JSON по запросу. JSON в этом формате:Значение настройки для разных ключей JSON для поля. Структура воспроизведения.
{
"email":"[email protected]",
"password":"pw",
"address":{
"city":"cityName",
"country":"countryName"}
}
Затем я использую user = Json.fromJson(json, User.class);
для разбора JSON в класс пользователя. В моей базе данных, у меня есть к таблицам с 12:59 отношением, которые выглядят как:
Пользователь:
EMAIL VARCHAR,
NAME STRING
Адрес:
EMAIL VARCHAR,
CITY VARCHAR,
ADDRESS VARCHAR
где EMAIL является внешним ключом.
Поскольку JSON i получает только 5 значений, когда среда воспроизведения сохраняет новую запись в базу данных, в Address она сохраняет только CITY и ADDRESS, а поле EMAIL сохраняется как null. И позже я не могу получить значение элемента Address соответствующей записи пользователя, так как внешний ключ, который их соединяет, сохраняется как null. (Это sql-запросы:)
Есть ли какая-то аннотация или каким-то другим способом, как я могу использовать значение электронной почты от JSON в качестве значения электронной почты в таблице адресов?
Вот как я писал свои модельные классы:
@Entity
@Table(name = "User")
public class User extends Model{
@Id
@Column(length = 80)
private String email;
@Column(length = 100)
private String password;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "user")
private Address address;
}
@Entity
@Table(name = Address
public class Address extends Model{
@OneToOne()
@JoinColumn(name = "email")
private User user;
@Column(length = 100)
private String city;
@Column(length = 100)
private String country;
}
Может ли кто-нибудь помочь? – xpg94