diff --git a/resources/db_update_scripts/current.sql b/resources/db_update_scripts/current.sql index e69de29bb2..788ca7b00d 100644 --- a/resources/db_update_scripts/current.sql +++ b/resources/db_update_scripts/current.sql @@ -0,0 +1,12 @@ +CREATE TABLE IF NOT EXISTS `Keyword_Keyword` ( + `Keyword_id` bigint(20) NOT NULL, + `associatedKeywords_id` bigint(20) NOT NULL, + PRIMARY KEY (`Keyword_id`,`associatedKeywords_id`), + KEY `FKC121395398ED461` (`Keyword_id`), + KEY `FKC121395356E25A3A` (`associatedKeywords_id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + + +ALTER TABLE `Keyword_Keyword` + ADD CONSTRAINT `FKC121395356E25A3A` FOREIGN KEY (`associatedKeywords_id`) REFERENCES `Keyword` (`id`), + ADD CONSTRAINT `FKC121395398ED461` FOREIGN KEY (`Keyword_id`) REFERENCES `Keyword` (`id`); \ No newline at end of file diff --git a/src/main/java/se/su/dsv/scipro/match/dataobject/Keyword.java b/src/main/java/se/su/dsv/scipro/match/dataobject/Keyword.java index 6190e49d9a..1f74ea8472 100644 --- a/src/main/java/se/su/dsv/scipro/match/dataobject/Keyword.java +++ b/src/main/java/se/su/dsv/scipro/match/dataobject/Keyword.java @@ -1,16 +1,14 @@ package se.su.dsv.scipro.match.dataobject; -import javax.persistence.Cacheable; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.ManyToOne; +import javax.persistence.*; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import se.su.dsv.scipro.data.dataobjects.LazyDeletableDomainObject; +import java.util.Set; + @Entity @Cacheable(true) @Cache(usage= CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) @@ -28,7 +26,10 @@ public class Keyword extends LazyDeletableDomainObject { @ManyToOne private KeywordType type; - + + @ManyToMany + private Set<Keyword> associatedKeywords; + public Keyword() { }