【发布时间】:2020-01-22 04:24:49
【问题描述】:
我有两个 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;
}
这是我的测试:
- 我创建了一个网络漫画
- 我创建了一集
- 使用 addEpisode 在 episodeList 中添加剧集
- 创建对象 episodeNexus 并保存所有内容。
在我的 episodeList 中,我创建了该剧集,但 episodeNexus 为 Null。 为什么列表没有自动更新?
当我再次按 ID 获取 webtoon 时,我有正确的列表,其中包含在剧集中创建的项目。
如何在更新剧集后更新我的网络漫画?
【问题讨论】:
标签: spring hibernate spring-boot jpa