亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

春季數據JPA中的嵌套一對多問題

春季數據JPA中的嵌套一對多問題

慕容708150 2022-09-07 16:54:16
表:survey(id, title);survey_question(id, survey_id, title);survey_question_option(id, survey_question_id, content)實體:@Entitypublic class Survey implements Serializable {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Long id;    private String title;    @OneToMany(mappedBy = "survey", fetch = FetchType.EAGER, orphanRemoval = true, cascade = CascadeType.ALL)    private List<SurveyQuestion> questions;}@Entitypublic class SurveyQuestion implements Serializable {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Long id;    @JoinColumn(nullable = false)    @ManyToOne    @JsonIgnore    private Survey survey;    private String title;    @OneToMany(mappedBy = "surveyQuestion", fetch = FetchType.EAGER, orphanRemoval = true, cascade = CascadeType.ALL)    private List<SurveyQuestionOption> options;}@Entitypublic class SurveyQuestionOption implements Serializable {    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    private Long id;    @JoinColumn(nullable = false)    @ManyToOne    @JsonIgnore    private SurveyQuestion surveyQuestion;    private String content;}現在添加調查@PostMapping@ResponseStatus(HttpStatus.CREATED)public Survey create(@RequestBody Survey survey) {    return repository.save(survey);}請求正文中的 JSON{    "title": "I'm a survey!",    "questions": [{        "title": "I'm a question!",        "options": [{            "content": "I'm an option."        },        {            "content": "I'm an option."        },        {            "content": "I'm an option."        },        {            "content": "I'm an option."        }]    },    {        "title": "I'm a question!",        "options": [{            "content": "I'm an option."        },        {            "content": "I'm an option."        },        {            "content": "I'm an option."        },        {            "content": "I'm an option."        }]    }]}
查看完整描述

1 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

您正在同時用于兩者fetch = FetchType.EAGER

private List<SurveyQuestion> questions;

private List<SurveyQuestionOption> options;

因此,默認情況下,您始終在此處獲取整個樹。

現在,這里的關鍵是您將這些依賴項聲明為 .這意味著有序但允許重復。在這里,您可以獲得每個選項數量的重復問題。List

嘗試使用或避免重復。SetSortedSet


查看完整回答
反對 回復 2022-09-07
  • 1 回答
  • 0 關注
  • 80 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號