Я использую веб-службу Spring Boot, и я хочу знать, как лучше всего управлять данными и отношениями между объектами.
Первый метод использует двунаправленные отношения, подобные приведенным ниже:
Заголовок :
@Entity
public class Title {
private Integer id;
private String name;
private List<TitleCelebrity> titleCelebrities;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Basic
@Column(name = "name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@OneToMany(mappedBy = "title", cascade = CascadeType.ALL)
public List<TitleCelebrity> getTitleCelebrities() {
return titleCelebrities;
}
public void setTitleCelebrities(List<TitleCelebrity> titleCelebrities) {
this.titleCelebrities = titleCelebrities;
}
}
НазваниеCelebrity entity:
@Entity
@Table(name = "title_celebrity")
public class TitleCelebrity {
private Integer id;
private String type;
private Title title;
@Id
@Column(name = "id")
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Basic
@Column(name = "type")
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "title_id")
@JsonIgnore
public Title getTitle() {
return title;
}
public void setTitle(Title title) {
this.title = title;
}
}
поэтому каждый раз, когда я делаю запрос на получение заголовка, я получал заголовок со списком TitleCelebrity, и это то, что я хочу.
теперь другой способ - не использовать двунаправленную связь, вместо этого сделать два запроса, первый - чтобы получить заголовок и на основе этого идентификатора заголовка, я делаю второй запрос, чтобы получить TitleCelebrity.
Я предпочитаю второй способ, но это лучший способ?