Не удается получить данные из SpringDataJpa с помощью manytoone - PullRequest
0 голосов
/ 25 мая 2019

У меня должна быть сущность:

@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()));
    }

Как вы можете видеть, когда я получаю статью из базы данных, я не возвращаю ее коммнеты, когда в базе есть два комментария.

Как решить эту проблему?Я хочу получать комментарии, когда получаю статью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...