У меня есть два класса Webtoon:
@Entity
@Data
@NoArgsConstructor
public class Webtoon {
@Id //The unique id of the webtoon.
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy="webtoon", orphanRemoval = true)
@CollectionTable(name= "list_of_episodes")
List<Episode> listOfEpisodes = new ArrayList<>();
@Column(name= "price", unique = false, nullable = false)
private BigDecimal price;
private String repositoryGeneratedId;
/**
* Add episode in the list
* @param episode
*/
public void addEpisode(Episode episode) {
listOfEpisodes.add(episode);
episode.setWebtoon(this);
}
/**
* Remove episode in the list
* @param episode
*/
public void removeEpisode(Episode episode) {
listOfEpisodes.remove(episode);
episode.setWebtoon(null);
}
/**
* Root url where all files are hosted in nexus
* @return
*/
@JsonIgnore
public String getRootUrl() {
return this.companyId+"/webtoon/webtoon-"+this.repositoryGeneratedId;
}
}
и Эпизод
@Entity
@Data
@NoArgsConstructor
public class Episode {
@Id //The unique id.
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@Column(name= "title", unique = false, nullable = false)
private String title;
@Column(name= "description", unique = false, nullable = false)
private String description;
@Column(name= "price", unique = false, nullable = false)
private BigDecimal price;
@OneToOne(cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
private Image icon;
@OneToOne(cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
private Image episodeNexus;
private String repositoryGeneratedId;
@JsonIgnore
@ManyToOne(cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
@JoinColumn(name="webtoon_id")
Webtoon webtoon;
}
Это мой тест:
- Я создал вебтон
- Я создал эпизод
- Добавьте эпизод в список episodeList с помощью addEpisode
- Создайте объект episodeNexus и сохраните все.
В моем списке episodeList у меня есть эпизод создан, но эпизод Nexus имеет значение Null. Почему список не обновляется автоматически?
Когда я снова выбираю вебтун по Id, у меня есть правильный список с элементом, созданным внутри эпизода.
Как после обновления Episode также можно обновить мой вебтун?