У меня есть два простых класса, которые называются Student и Location
@Entity
public class Student {
private String name;
private Integer id;
@OneToOne(fetch = FetchType.EAGER, mappedBy = "student", cascade = CascadeType.PERSIST)
@JsonProperty("location")
private Location location;
/* Getters and Setters */
}
@Entity
public class Location {
private Integer id;
private String locationName;
private String street;
private String postalCode;
@OneToOne(fetch = FetchType.EAGER)
@PrimaryKeyJoinColumn
@JoinColumn(name = "student_id")
private Student student;
/* Getters and Setters */
}
В настоящее время схема такова, что id
учащегося хранится в таблице местоположений, но логически Location
не зависит от Student
юридическое лицо.Это Student
, который должен иметь идентификатор Location
сущности
На основании всех примеров, которые я видел в Интернете, в моем случае это дочерний класс Location
, который в конечном итоге имеет отношение отображения.Я попытался изменить атрибут mappedby
, установив его для переменной private Student student;
, но он, похоже, не создает этот столбец в базе данных.
JSON, который я получаю в запросе REST, структурирован следующим образом:
"students": [
{
"id": 1234,
"name": "John Doe",
"location": {
"id": "5678",
"locationName": "St.Mary",
"street": "Wellington St",
"postalCode": "41298"
}
},
.
.
.
.
/* Can have more students here */
]
Итак, с точки зрения БД, я хочу, чтобы схема выглядела так:
students
id name location_id
locations
id location_name street postal_code
Может кто-нибудь, пожалуйста, укажите мне в правильном направлении.Я был бы очень признателен за помощь в этом, так как я застрял на некоторое время с этой проблемой