Есть ли в спящем режиме многоуровневая структура - PullRequest
1 голос
/ 11 июля 2020

Как спроектировать следующую структуру bean-компонентов, если у меня есть вопрос, в котором есть вложенные вопросы, и на все вопросы и подвопросы есть соответствующие ответы. Структура похожа на

Структура

Как я могу спроектировать эту структуру в спящем режиме для достижения функциональности при весенней загрузке.

1 Ответ

2 голосов
/ 11 июля 2020

Если мы примем во внимание, что это 3 разные таблицы, я бы подумал, что это будет сущность Question

@Entity
@Table("question")
public class Question

, а затем сущность SubQuestion

@Entity
@Table("sub_question")
public class SubQuestion

с ManyToOne ассоциацией

  @ManyToOne(fetch=FetchType.LAZY)
  @JoinColumn(name="QUESTION_ID")
  private Question question;

и, наконец, общим c классом GenericAnswer

@Entity
@Table(name = "answer")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "question", discriminatorType = DiscriminatorType.STRING)
public class GenericAnswer {

, который будет расширен на 2 класса, QuestionAnswer и SubQuestionAnswer

Эти 2 класса имеют столбец дискриминатора для различения guish таблицы, к которой они относятся (вопрос или вложенный_вопрос)

@DiscriminatorValue("question")
@Entity
public class QuestionAnswer extends GenericAnswer {

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="QUESTION_ID")
private Question question;

и

@DiscriminatorValue("sub_question")
@Entity
public class SubQuestionAnswer extends GenericAnswer {

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="QUESTION_ID")
private SubQuestion subQuestion;

Надеюсь, это вам поможет.

...