Я пытаюсь создать «игру», это просто для изучения, и я хотел бы знать, как можно было бы создать JPA, как учебную игру, например:
У меня есть эти классы / таблицы в основном
Question : text, description, set<Answer>, difficulty, userWhoCreated, Topic
Topic : name, set<question>
SubTopic : name, set<question>
Answer : text, question (to reference to it)
Quiz : set<question>, name, description
Но тогда я хочу сказать, что мне хотелось бы иметь репозиторий для хранения всех этих вопросов, поэтому, когда пользователь захочет изучитьНемного просто получите вопросы из этого хранилища.
Цель темы и подтемы - отфильтровать, когда пользователь хочет вопросы, например.
ПРИМЕР
Вопрос: что такое соединение?Тема будет «База данных». Подзаголовок будет «Присоединиться»
Не могли бы вы подсказать мне, как это сделать?
Пример моего класса вопросов
@Entity(name = "question")
public class Question extends DateAudit {
@Id
@Column(name = "question_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "question_seq")
@SequenceGenerator(name = "question_seq", allocationSize = 1)
private Long id;
@Column(name = "name")
@NotBlank(message = "Question name can not be blank")
private String name;
@Column(name = "is_exam_question", nullable = false)
private Boolean is_exam_question;
@ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.MERGE })
private Set<Answer> answers = new HashSet<>();
}
Пример Ответ сущности
@Entity(name = "answer")
public class Answer extends DateAudit {
@Id
@Column(name = "answer_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "answer_seq")
@SequenceGenerator(name = "answer_seq", allocationSize = 1)
private Long id;
@Column(name = "answer_to_question")
@NotBlank(message = "Answer to question name can not be blank")
private String answer_to_question;
@ManyToOne
private Question question;
@Column(name="type_answer")
private AnswerType answerType;
}
Также я вижу, что не могу создать ответ типа "ИСТИНА / ЛОЖЬ","ДА / НЕТ", "Маленькое описание", "МУЛЬТИ-ВЫБОР", как мне с этим справиться?