I have two tables with primary keys questionNumber and assessmentId. I want to use these two to make them composite in two different tables. Is this possible. Should I add something to this to make it work. OR is there another way to implement it. OR should I add question meta data to question and just used the composite key in AnswerKey
Question @Entity @Getter @Setter public class Question implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int questionId; private int questionNumber; private String assessmentId; private QuestionTypes questionType; private String questionText; private String questionURL; private QuestionStatus questionStatus; @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "questionNumber", referencedColumnName = "questionNumber") private List<QuestionOption> questionOptions; //Constructor // Getter and setter } Assessment @Entity @JsonIgnoreProperties({"questionList"}) public class Assessment { @Id private String assessmentId; private String assessmentTopic; private String assessmentSubTopic; private String assessmentLevel; private String createdBy; private String rating; @OneToMany(cascade = CascadeType.ALL, mappedBy = "assessmentId", fetch = FetchType.LAZY) private List<Question> questionList; //Constructor //Setter and getter } QuestionMetaData @Entity public class QuestionMetaData { @Id private QuestionAssessmentKey questionAssessmentKey; private String topicName; private String subtopicName; private QuestionComplexity complexity; private String conceptName; //Getter and setter //Constructor } AnswerKey @Entity public class AnswerKey { @Id private QuestionAssessmentKey questionAssessmentKey; private Character answer; //Constructor // Setter and getter } Key @Embeddable public class QuestionAssessmentKey implements Serializable { private int questionNumber; private String assessmentId; //Constructor //Setter and Getter }