task/3382: Harmonisera tabellnamn #6
@ -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
|
||||
|
@ -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 {
|
||||
|
||||
@ -20,7 +30,9 @@ public class Keyword extends LazyDeletableDomainObject {
|
||||
private String keyword;
|
||||
|
||||
@ManyToMany(fetch = FetchType.EAGER, targetEntity = ResearchArea.class)
|
||||
@JoinTable(name="Keyword_researcharea")
|
||||
@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() {
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user