Я отправляю запрос POST (JSON) для создания нового экземпляра Person, и каждый Person должен иметь связанный с ним статус.Существует предварительно заполненная таблица «Состояние» с ограниченным количеством статусов.Является ли просто отправка идентификатора сущности статуса лучшим подходом здесь?
В настоящее время я отправляю только идентификатор сущности статуса в моем запросе, но это означает загрузку статуса из БД с использованием идентификатора и добавление егопереходному лицу, прежде чем оно будет сохранено заранее, чтобы удовлетворить ограничения JPA / DB, но это неэффективно.
Тело запроса (усеченное для краткости) отправлено в PersonDTO:
{
"name" : "Dave",
"statusId" : "1",
::
}
Сущность статуса
@Entity
public class Status {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@Column
private String status;
}
Лицо сущности
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private Long id;
@ManyToOne(optional = false)
@JoinColumn(name = "status_id")
private Status status;
::
Является ли наилучшим способом фактической отправки объекта состояния в запросе JSON, поэтому мне не нужно выполнять какой-либо поиск по идентификатору состояния?
{
"name" : "Dave",
"status" : {
"id" : 1
"status" : "AVAILABLE"
},
::
}
Я ценю, что могу предварительно загружать состояния при запуске в одноэлементный файл, чтобы они были доступны, или кэшировать метод класса обслуживания, который возвращает статус, используя идентификатор, но мне интересно, какой здесь лучший подход, потому чтоесли бы я использовал собственный SQL, я мог бы просто вставить человека в базу данных с идентификатором состояния и не выполнять никакого просмотразаранее статуса.