task/3382: Harmonisera tabellnamn #6

Merged
ansv7779 merged 104 commits from task/3382 into develop 2024-11-12 13:33:44 +01:00
5 changed files with 231 additions and 16 deletions
Showing only changes of commit 52cb71d3d2 - Show all commits

View File

@ -1,13 +1,49 @@
package se.su.dsv.scipro.match;
import com.querydsl.core.annotations.QueryInit;
import jakarta.persistence.AttributeOverride;
import jakarta.persistence.AttributeOverrides;
import jakarta.persistence.Basic;
import jakarta.persistence.Cacheable;
import jakarta.persistence.CascadeType;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Embedded;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.JoinTable;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.OneToOne;
import jakarta.persistence.OrderBy;
import jakarta.persistence.PostLoad;
import jakarta.persistence.PostPersist;
import jakarta.persistence.PostUpdate;
import jakarta.persistence.PrePersist;
import jakarta.persistence.PreUpdate;
import jakarta.persistence.Table;
import se.su.dsv.scipro.data.dataobjects.Member;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.system.*;
import jakarta.persistence.*;
import java.time.LocalDate;
import java.util.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@Entity
@ -23,7 +59,7 @@ public class Idea extends DomainObject {
private Long id;
@ManyToOne(optional = false)
@JoinColumn(name = "project_type_id")
@JoinColumn(name = "project_type_id", referencedColumnName = "id")
private ProjectType projectType;
@Enumerated(EnumType.STRING)
@ -43,13 +79,14 @@ public class Idea extends DomainObject {
private Set<IdeaParticipation> ideaParticipations = new HashSet<>();
@ManyToOne(optional = true)
@JoinColumn(name = "application_period_id")
@JoinColumn(name = "application_period_id", referencedColumnName = "id")
private ApplicationPeriod applicationPeriod;
@Column(nullable = false, length = TITLE_LENGTH)
private String title;
@ManyToOne(optional = true)
@JoinColumn(name = "research_area_id", referencedColumnName = "id")
private ResearchArea researchArea;
@ElementCollection
@ -72,6 +109,9 @@ public class Idea extends DomainObject {
private TholanderBox tholanderBox = new TholanderBox();
@ManyToMany
@JoinTable(name="idea_keyword",
joinColumns = @JoinColumn(name = "idea_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "keyword_id", referencedColumnName = "id"))
private Set<Keyword> keywords = new HashSet<>();
@OneToOne

View File

@ -1,15 +1,25 @@
package se.su.dsv.scipro.match;
import jakarta.persistence.Cacheable;
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.JoinTable;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.Table;
import se.su.dsv.scipro.system.LazyDeletableDomainObject;
import se.su.dsv.scipro.system.ResearchArea;
import jakarta.persistence.*;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
@Entity
@Table(name = "keyword")
@Cacheable(true)
public class Keyword extends LazyDeletableDomainObject {
@ -19,8 +29,10 @@ public class Keyword extends LazyDeletableDomainObject {
private String keyword;
@ManyToMany(fetch = FetchType.EAGER,targetEntity=ResearchArea.class)
@JoinTable(name="Keyword_researcharea")
@ManyToMany(fetch = FetchType.EAGER, targetEntity = ResearchArea.class)
@JoinTable(name="keyword_research_area",
joinColumns = @JoinColumn(name = "keyword_id", referencedColumnName = "id"),
inverseJoinColumns = @JoinColumn(name = "research_area_id", referencedColumnName = "id"))
private Set<ResearchArea> researchAreas = new HashSet<>();
public Keyword() {

View File

@ -1,13 +1,45 @@
package se.su.dsv.scipro.project;
import com.querydsl.core.annotations.QueryInit;
import jakarta.persistence.AttributeOverride;
import jakarta.persistence.Basic;
import jakarta.persistence.Cacheable;
import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Embedded;
import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.JoinTable;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.MapKeyJoinColumn;
import jakarta.persistence.PrePersist;
import jakarta.persistence.PreUpdate;
import jakarta.persistence.Table;
import se.su.dsv.scipro.data.dataobjects.Member;
import se.su.dsv.scipro.reusable.SciProUtilities;
import se.su.dsv.scipro.system.*;
import jakarta.persistence.*;
import java.time.LocalDate;
import java.util.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
import java.util.stream.Collectors;
@Entity
@ -22,11 +54,12 @@ public class Project extends DomainObject {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Basic
@Column(unique = true)
private Integer identifier;
@Column(length = TITLE_MAX_LENGTH)
@Basic(optional = false)
@Column(length = TITLE_MAX_LENGTH)
private String title;
@Basic(optional = false)
@ -51,7 +84,7 @@ public class Project extends DomainObject {
@ManyToOne(optional = false)
@QueryInit({"unit"})
@JoinColumn(name = "supervisor_id")
@JoinColumn(name = "supervisor_id", referencedColumnName = "id")
private User headSupervisor;
@Enumerated(EnumType.STRING)
@ -67,7 +100,7 @@ public class Project extends DomainObject {
private String stateOfMindReason;
@ManyToOne(optional = false)
@JoinColumn(name = "project_type_id")
@JoinColumn(name = "project_type_id", referencedColumnName = "id")
private ProjectType projectType;
@Embedded
@ -81,6 +114,7 @@ public class Project extends DomainObject {
private int credits;
@ManyToOne(optional = true)
@JoinColumn(name = "research_area_id", referencedColumnName = "id")
private ResearchArea researchArea;
@Enumerated(EnumType.STRING)

View File

@ -1,14 +1,22 @@
package se.su.dsv.scipro.system;
import jakarta.persistence.*;
import jakarta.persistence.Basic;
import jakarta.persistence.Cacheable;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import java.util.Objects;
@Entity
@Table(name = "researcharea")
@Table(name = "research_area")
@Cacheable(true)
public class ResearchArea extends LazyDeletableDomainObject {
public static final int STRING_MAX_LENGTH = 255;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

View File

@ -1476,7 +1476,128 @@ alter table `survey_answer`
foreign key (survey_id) references survey (id)
on delete cascade on update cascade;
/*
* Step 9: Keyword and Research Area related tables
*/
-- table: Keyword_researcharea, except foreign keys to coming table keyword and research_area
alter table `Keyword_researcharea` drop foreign key `FKF8C66F5E98ED461`;
alter table `Keyword_researcharea` drop key `FKF8C66F5E98ED461`;
alter table `Keyword_researcharea` drop foreign key `FKF8C66F5E6F20ECBC`;
alter table `Keyword_researcharea` drop key `FKF8C66F5E6F20ECBC`;
rename table `Keyword_researcharea` to `keyword_research_area`;
alter table `keyword_research_area` rename column `Keyword_id` to `keyword_id`;
alter table `keyword_research_area` rename column `researchAreas_id` to `research_area_id`;
-- table: idea_Keyword
alter table `idea_Keyword` drop foreign key `FK3707EE21AE316F00`;
alter table `idea_Keyword` drop key `FK3707EE21AE316F00`;
alter table `idea_Keyword` drop foreign key `FK3707EE21BD1521C1`;
alter table `idea_Keyword` drop primary key;
rename table `idea_Keyword` to `idea_keyword`;
alter table `idea_keyword` rename column `keywords_id` to `keyword_id`;
alter table `idea_keyword` add primary key (idea_id, keyword_id);
alter table `idea_keyword`
add constraint fk_idea_keyword_idea_id
foreign key (idea_id) references idea (id)
on delete cascade on update cascade;
-- table: keyword
alter table `keyword` drop key `deleted_index`;
rename table `Keyword` to `keyword`;
create index idx_keyword_deleted on keyword (deleted);
-- add back foreign key reference from table idea_keyword to table keyword
alter table `idea_keyword`
add constraint fk_idea_keyword_keyword_id
foreign key (keyword_id) references keyword (id)
on delete cascade on update cascade;
-- add back foreign key reference from table keyword_research_area to table keyword
alter table `keyword_research_area`
add constraint fk_kra_keyword_id
foreign key (keyword_id) references keyword (id)
on delete cascade on update cascade;
-- table: user_research_area
alter table `user_research_area` drop foreign key `user_research_area_user_id`;
alter table `user_research_area` drop foreign key `user_research_area_research_area_id`;
alter table `user_research_area` drop key `user_research_area_research_area_id`;
alter table `user_research_area`
add constraint fk_ura_user_id
foreign key (user_id) references user (id)
on delete cascade on update cascade;
-- drop foreign key from idea to table researcharea before we can proceed with that table,
-- change foreign key column name as well
alter table `idea` drop foreign key `FK6E0518974E257FBF`;
alter table `idea` drop key `FK6E0518974E257FBF`;
alter table `idea` rename column `researchArea_id` to `research_area_id`;
-- drop foreign key from project to table researcharea before we can proceed with that table,
-- change foreign key column name as well
alter table `project` drop foreign key `FK_research_area_id`;
alter table `project` drop key `FK_research_area_id`;
alter table `project` rename column `researchArea_id` to `research_area_id`;
-- table: researcharea
alter table `researcharea` drop key `deleted_index`;
alter table `researcharea` drop key `identifier`;
rename table `researcharea` to `research_area`;
create index idx_research_area_deleted on research_area (deleted);
alter table `research_area` add constraint uk_research_area_identifier unique (identifier);
-- add back foreign key reference from table project to table research_area
alter table `project`
add constraint fk_project_research_area_id
foreign key (research_area_id) references research_area (id)
on delete cascade on update cascade;
-- add back foreign key reference from table idea to table research_area
alter table `idea`
add constraint fk_idea_research_area_id
foreign key (research_area_id) references research_area (id)
on delete cascade on update cascade;
-- add back foreign key reference from table user_research_area to table research_area
alter table `user_research_area`
add constraint fk_ura_research_area_id
foreign key (research_area_id) references research_area (id)
on delete cascade on update cascade;
-- add back foreign key reference from table keyword_research_area to table research_area
alter table `keyword_research_area`
add constraint fk_kra_research_area_id
foreign key (research_area_id) references research_area (id)
on delete cascade on update cascade;