我的网络应用需要建议架构设计

时间:2016-04-05 10:14:56

标签: java

我正在开发一个测验应用程序,但是我很困惑,在这种情况下,让架构设计正确需要帮助。 我测验问题答案 answerOptions 实体如下  测验

@Entity
public class Quiz implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long quizId;
    private String quizTitle;   

    @OneToMany(mappedBy = "quiz", fetch = FetchType.EAGER, cascade = CascadeType.REFRESH)
    private Set<Question> questions = new HashSet<Question>();

    @ManyToMany(mappedBy = "quizs", fetch = FetchType.EAGER, cascade = { CascadeType.REFRESH})
    @JsonBackReference
    private Set<History> histories = new HashSet<History>();

    // omitting getters and setters
}

问题

@Entity
public class Question implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long questionId;
    private String questionText;
    private Integer questionChoices;
    private Integer questionNumbers;
    @JsonIgnore
    @ManyToOne
    @JoinColumn(name = "quizId")
    private Quiz quiz;  

    @OneToMany(mappedBy = "question", cascade = { CascadeType.PERSIST, CascadeType.MERGE }, fetch = FetchType.EAGER)
    private Set<Option> options = new HashSet<Option>();


    @OneToOne(cascade = {CascadeType.REFRESH, CascadeType.PERSIST})
    @JoinColumn(name = "answerId")
    private Answer answer;

    // omitting getters and setters

}

answerOptions

@Entity
@Table(name="answerOptions")
public class Option implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long optionId;
    private String optionText;
    private static final long serialVersionUID = 1L;
    @ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.EAGER)
    @JoinColumn(name = "questionId")
    private Question question;
        // omitting getters and setters

}

回答

@Entity
public class Answer implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long answerId;
    private String answerCorrect;

    @OneToOne(mappedBy = "answer",  cascade = CascadeType.ALL)
    private Question question;
    // omitting getters and setters

}

现在每件事情都很好,但我应该在哪里保存

  1. 正确答案的数量。
  2. 错误答案的数量。
  3. 测验结果(合格/不合格)

0 个答案:

没有答案