У меня должна быть сущность:
@Data
@Entity
public class Article {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(mappedBy = "article", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Comment> comments;
private String content;
}
import lombok.Data;
import javax.persistence.*;
@Data
@Entity
public class Comment {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String content;
@ManyToOne(cascade = CascadeType.ALL)
private Article article;
}
Одна статья соответствует множеству комментариев.
Так что я ожидаю, когда я получу любую статью, она должна вернуть текущую статью и ее комментарии.
Поэтому я пишу это
@Test
public void getArticle(){
article.setComments(comments);
articleRepository.save(article);
System.out.println(JSONObject.toJSONString(article));
// {"comments":[{"content":"还行","id":2},{"content":"不错","id":3}],"content":"这个一篇文章","id":1}
Optional<Article> articleOptional = articleRepository.findById(1L);
System.out.println(JSONObject.toJSONString(articleOptional.get()));
// {"comments":[],"content":"这个一篇文章","id":1}
System.out.println(JSONObject.toJSONString(articleOptional.get().getComments()));
}
Как вы можете видеть, когда я получаю статью из базы данных, я не возвращаю ее коммнеты, когда в базе есть два комментария.
Как решить эту проблему?Я хочу получать комментарии, когда получаю статью.