task/3382: Harmonisera tabellnamn #6

Merged
ansv7779 merged 104 commits from task/3382 into develop 2024-11-12 13:33:44 +01:00
4 changed files with 121 additions and 3 deletions
Showing only changes of commit f5f85f1486 - Show all commits

View File

@ -1,11 +1,23 @@
package se.su.dsv.scipro.survey; package se.su.dsv.scipro.survey;
import jakarta.persistence.*; import jakarta.persistence.Basic;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.Table;
import java.io.Serializable; import java.io.Serializable;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@Entity @Entity
@Table(name = "question")
public class Question implements Serializable { public class Question implements Serializable {
public enum Type { TEXT, SINGLE_CHOICE, MULTIPLE_CHOICE, GROUP_HEADING } public enum Type { TEXT, SINGLE_CHOICE, MULTIPLE_CHOICE, GROUP_HEADING }
@ -20,6 +32,9 @@ public class Question implements Serializable {
private String text; private String text;
@ElementCollection(fetch = FetchType.EAGER) @ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "question_choices",
joinColumns = @JoinColumn(name = "question_id", referencedColumnName = "id"))
@Column(name = "choices")
private List<String> choices = new LinkedList<>(); private List<String> choices = new LinkedList<>();
private Type type = Type.TEXT; private Type type = Type.TEXT;

View File

@ -1,14 +1,23 @@
package se.su.dsv.scipro.survey; package se.su.dsv.scipro.survey;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import se.su.dsv.scipro.project.Project; import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.User; import se.su.dsv.scipro.system.User;
import jakarta.persistence.*;
import java.io.Serializable; import java.io.Serializable;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@Entity @Entity
@Table(name = "survey")
public class Survey implements Serializable { public class Survey implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)

View File

@ -6,7 +6,7 @@ import java.util.Set;
import java.util.TreeSet; import java.util.TreeSet;
@Entity @Entity
@Table @Table(name = "survey_answer")
public class SurveyAnswer implements Serializable { public class SurveyAnswer implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@ -21,6 +21,9 @@ public class SurveyAnswer implements Serializable {
private String answer; private String answer;
@ElementCollection(fetch = FetchType.EAGER) @ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "survey_answer_multiple_answers",
joinColumns = @JoinColumn(name = "survey_answer_id", referencedColumnName = "id"))
@Column(name = "multiple_answers")
private Set<String> multipleAnswers = new TreeSet<>(); private Set<String> multipleAnswers = new TreeSet<>();
public Survey getSurvey() { public Survey getSurvey() {

View File

@ -1395,6 +1395,94 @@ alter table `checklist_template`
foreign key (user_id) references user (id) foreign key (user_id) references user (id)
on delete cascade on update cascade; on delete cascade on update cascade;
/*
* Step 8: Survey related related tables
*/
-- table: SurveyAnswer_multipleAnswers, except foreign key to coming table survey_answer
alter table `SurveyAnswer_multipleAnswers` drop foreign key `FK_SA`;
alter table `SurveyAnswer_multipleAnswers` drop key `FK_SA`;
rename table `SurveyAnswer_multipleAnswers` to `survey_answer_multiple_answers`;
alter table `survey_answer_multiple_answers` rename column `SurveyAnswer_id` to `survey_answer_id`;
alter table `survey_answer_multiple_answers` rename column `multipleAnswers` to `multiple_answers`;
-- table: SurveyAnswer, except foreign key to coming table survey and question
alter table `SurveyAnswer` drop foreign key `FK_answer_question`;
alter table `SurveyAnswer` drop foreign key `FK_answer_survey`;
alter table `SurveyAnswer` drop key `FK_answer_question`;
alter table `SurveyAnswer` drop key `FK_answer_survey`;
rename table `SurveyAnswer` to `survey_answer`;
-- add back foreign key reference from survey_answer_multiple_answers to survey_answer
alter table `survey_answer_multiple_answers`
add constraint fk_sama_survey_answer_id
foreign key (survey_answer_id) references survey_answer (id)
on delete cascade on update cascade;
-- table: Question_choices, except foreign key to coming table question
alter table `Question_choices` drop foreign key `FK_question_choices_question`;
alter table `Question_choices` drop key `FK_question_choices_question`;
rename table `Question_choices` to `question_choices`;
-- table: Question
rename table `Question` to `question`;
-- add back foreign key reference from question_choices to question
alter table `question_choices`
add constraint fk_question_choices_question_id
foreign key (question_id) references question (id)
on delete cascade on update cascade;
-- add back foreign key references from survey_answer to question
alter table `survey_answer`
add constraint fk_survey_answer_question_id
foreign key (question_id) references question (id)
on delete cascade on update cascade;
-- table: survey
alter table `Survey` drop foreign key `FK_survey_project`;
alter table `Survey` drop key `FK_survey_project`;
alter table `Survey` drop foreign key `FK_survey_user`;
alter table `Survey` drop key `FK_survey_user`;
rename table `Survey` to `survey`;
alter table `survey`
add constraint fk_survey_project_id
foreign key (project_id) references project (id)
on delete cascade on update cascade;
alter table `survey`
add constraint fk_survey_user_id
foreign key (user_id) references user (id)
on delete cascade on update cascade;
-- add back foreign key references from survey_answer to survey
alter table `survey_answer`
add constraint fk_survey_answer_survey_id
foreign key (survey_id) references survey (id)
on delete cascade on update cascade;
@ -1420,6 +1508,9 @@ alter table `project_user_note`
/* Useful SQL /* Useful SQL
>>> SQL query for FK-to: >>> SQL query for FK-to: