From a36745ab8b6becd5683dbcb6ed682b5b710b2b14 Mon Sep 17 00:00:00 2001 From: "michele.artini" Date: Fri, 24 Jun 2022 15:26:47 +0200 Subject: [PATCH] contexts: simple primary keys --- .../dnetlib/is/context/ContextImporter.java | 36 +++------ .../is/context/ContextRestController.java | 2 +- .../eu/dnetlib/is/context/model/Category.java | 30 ------- .../dnetlib/is/context/model/CategoryPK.java | 48 ----------- .../is/context/model/ConceptLevel0.java | 41 ---------- .../is/context/model/ConceptLevel0PK.java | 57 ------------- .../is/context/model/ConceptLevel1.java | 54 ------------- .../is/context/model/ConceptLevel1PK.java | 68 ---------------- .../is/context/model/ConceptLevel2.java | 65 --------------- .../is/context/model/ConceptLevel2PK.java | 79 ------------------- .../eu/dnetlib/is/context/model/CtxInfo.java | 13 ++- .../is/context/model/CtxInfoWithClaim.java | 11 +++ .../model/repository/CategoryRepository.java | 5 +- .../repository/ConceptLevel0Repository.java | 6 +- .../repository/ConceptLevel1Repository.java | 6 +- .../repository/ConceptLevel2Repository.java | 6 +- .../src/main/resources/sql/schema.sql | 45 ++++------- 17 files changed, 66 insertions(+), 506 deletions(-) delete mode 100644 libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CategoryPK.java delete mode 100644 libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel0PK.java delete mode 100644 libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel1PK.java delete mode 100644 libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel2PK.java diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/is/context/ContextImporter.java b/apps/dnet-is-application/src/main/java/eu/dnetlib/is/context/ContextImporter.java index af922ae8..0ce7b3ac 100644 --- a/apps/dnet-is-application/src/main/java/eu/dnetlib/is/context/ContextImporter.java +++ b/apps/dnet-is-application/src/main/java/eu/dnetlib/is/context/ContextImporter.java @@ -51,7 +51,7 @@ public class ContextImporter { private void saveContext(final Node node) { final Context ctx = new Context(); - setCommonInfo(ctx, node); + setCommonInfo(ctx, null, node); ctx.setType(node.valueOf("@type")); contextRepository.save(ctx); @@ -62,57 +62,47 @@ public class ContextImporter { private void saveCategory(final Node node, final String ctxId) { final Category cat = new Category(); - setCommonInfo(cat, node); - cat.setContextId(ctxId); - + setCommonInfo(cat, ctxId, node); categoryRepository.save(cat); log.info("- Saved category: " + cat.getId()); - node.selectNodes("./concept").forEach(n -> saveConceptLvl0(n, ctxId, cat.getId())); + node.selectNodes("./concept").forEach(n -> saveConceptLvl0(n, cat.getId())); } - private void saveConceptLvl0(final Node node, final String ctxId, final String catId) { + private void saveConceptLvl0(final Node node, final String parent) { final ConceptLevel0 c0 = new ConceptLevel0(); - setCommonInfo(c0, node); - c0.setContextId(ctxId); - c0.setCategoryId(catId); + setCommonInfo(c0, parent, node); conceptLevel0Repository.save(c0); log.info("-- Saved concept 0: " + c0.getId()); - node.selectNodes("./concept").forEach(n -> saveConceptLvl1(n, ctxId, catId, c0.getId())); + node.selectNodes("./concept").forEach(n -> saveConceptLvl1(n, c0.getId())); } - private void saveConceptLvl1(final Node node, final String ctxId, final String catId, final String c0) { + private void saveConceptLvl1(final Node node, final String parent) { final ConceptLevel1 c1 = new ConceptLevel1(); - setCommonInfo(c1, node); - c1.setContextId(ctxId); - c1.setCategoryId(catId); - c1.setConceptLevel0Id(c0); + setCommonInfo(c1, parent, node); conceptLevel1Repository.save(c1); log.info("--- Saved concept 1: " + c1.getId()); - node.selectNodes("./concept").forEach(n -> saveConceptLvl2(n, ctxId, catId, c0, c1.getId())); + node.selectNodes("./concept").forEach(n -> saveConceptLvl2(n, c1.getId())); } - private void saveConceptLvl2(final Node node, final String ctxId, final String catId, final String c0, final String c1) { + private void saveConceptLvl2(final Node node, final String parent) { final ConceptLevel2 c2 = new ConceptLevel2(); - setCommonInfo(c2, node); - c2.setContextId(ctxId); - c2.setCategoryId(catId); - c2.setConceptLevel0Id(c0); - c2.setConceptLevel1Id(c1); + setCommonInfo(c2, parent, node); conceptLevel2Repository.save(c2); log.info("---- Saved concept 2: " + c2.getId()); } - private void setCommonInfo(final CtxInfo o, final Node n) { + private void setCommonInfo(final CtxInfo o, final String parent, final Node n) { o.setId(n.valueOf("@id")); o.setLabel(n.valueOf("@label")); if (o instanceof CtxInfoWithClaim) { + ((CtxInfoWithClaim) o).setParent(parent); ((CtxInfoWithClaim) o).setClaim(BooleanUtils.toBoolean(n.valueOf("@claim"))); } o.setParameters(n.selectNodes("./param") diff --git a/apps/dnet-is-application/src/main/java/eu/dnetlib/is/context/ContextRestController.java b/apps/dnet-is-application/src/main/java/eu/dnetlib/is/context/ContextRestController.java index 2300605a..3fc3ab01 100644 --- a/apps/dnet-is-application/src/main/java/eu/dnetlib/is/context/ContextRestController.java +++ b/apps/dnet-is-application/src/main/java/eu/dnetlib/is/context/ContextRestController.java @@ -63,7 +63,7 @@ public class ContextRestController { @GetMapping("/{ctxId}/categories") public Iterable listCategories(@PathVariable final String ctxId) { - return categoryRepository.findByContextIdOrderById(ctxId); + return categoryRepository.findByParentOrderById(ctxId); } @PostMapping(value = "/load", consumes = "text/plain") diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/Category.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/Category.java index de221446..4d2792c4 100644 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/Category.java +++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/Category.java @@ -1,42 +1,12 @@ package eu.dnetlib.is.context.model; -import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.IdClass; import javax.persistence.Table; @Entity @Table(name = "context_categories") -@IdClass(CategoryPK.class) public class Category extends CtxInfoWithClaim { private static final long serialVersionUID = -1847175903793410585L; - @Id - @Column(name = "id") - private String id; - - @Id - @Column(name = "ctx_id") - private String contextId; - - @Override - public String getId() { - return id; - } - - @Override - public void setId(final String id) { - this.id = id; - } - - public String getContextId() { - return contextId; - } - - public void setContextId(final String contextId) { - this.contextId = contextId; - } - } diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CategoryPK.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CategoryPK.java deleted file mode 100644 index cc97df00..00000000 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CategoryPK.java +++ /dev/null @@ -1,48 +0,0 @@ -package eu.dnetlib.is.context.model; - -import java.io.Serializable; -import java.util.Objects; - -public class CategoryPK implements Serializable { - - private static final long serialVersionUID = -2764222393730200265L; - - private String id; - - private String contextId; - - public String getId() { - return id; - } - - public void setId(final String id) { - this.id = id; - } - - public String getContextId() { - return contextId; - } - - public void setContextId(final String contextId) { - this.contextId = contextId; - } - - @Override - public int hashCode() { - return Objects.hash(contextId, id); - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { return true; } - if (!(obj instanceof CategoryPK)) { return false; } - final CategoryPK other = (CategoryPK) obj; - return Objects.equals(contextId, other.contextId) && Objects.equals(id, other.id); - } - - @Override - public String toString() { - return String.format("CategoryPK [id=%s, contextId=%s]", id, contextId); - } - -} diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel0.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel0.java index 51baff4a..7894a7ab 100644 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel0.java +++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel0.java @@ -1,53 +1,12 @@ package eu.dnetlib.is.context.model; -import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.IdClass; import javax.persistence.Table; @Entity @Table(name = "context_cat_concepts_lvl_0") -@IdClass(ConceptLevel0PK.class) public class ConceptLevel0 extends CtxInfoWithClaim { private static final long serialVersionUID = -4775331902088912839L; - @Id - @Column(name = "id") - private String id; - - @Id - @Column(name = "ctx_id") - private String contextId; - - @Id - @Column(name = "cat_id") - private String categoryId; - - @Override - public String getId() { - return id; - } - - @Override - public void setId(final String id) { - this.id = id; - } - - public String getContextId() { - return contextId; - } - - public void setContextId(final String contextId) { - this.contextId = contextId; - } - - public String getCategoryId() { - return categoryId; - } - - public void setCategoryId(final String categoryId) { - this.categoryId = categoryId; - } } diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel0PK.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel0PK.java deleted file mode 100644 index 415b20af..00000000 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel0PK.java +++ /dev/null @@ -1,57 +0,0 @@ -package eu.dnetlib.is.context.model; - -import java.io.Serializable; -import java.util.Objects; - -public class ConceptLevel0PK implements Serializable { - - private static final long serialVersionUID = -924956037443869537L; - - private String id; - - private String contextId; - - private String categoryId; - - public String getId() { - return id; - } - - public void setId(final String id) { - this.id = id; - } - - public String getContextId() { - return contextId; - } - - public void setContextId(final String contextId) { - this.contextId = contextId; - } - - public String getCategoryId() { - return categoryId; - } - - public void setCategoryId(final String categoryId) { - this.categoryId = categoryId; - } - - @Override - public int hashCode() { - return Objects.hash(categoryId, contextId, id); - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { return true; } - if (!(obj instanceof ConceptLevel0PK)) { return false; } - final ConceptLevel0PK other = (ConceptLevel0PK) obj; - return Objects.equals(categoryId, other.categoryId) && Objects.equals(contextId, other.contextId) && Objects.equals(id, other.id); - } - - @Override - public String toString() { - return String.format("ConceptLevel0PK [id=%s, contextId=%s, categoryId=%s]", id, contextId, categoryId); - } -} diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel1.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel1.java index c1f2ec67..cea55bdc 100644 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel1.java +++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel1.java @@ -1,66 +1,12 @@ package eu.dnetlib.is.context.model; -import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.IdClass; import javax.persistence.Table; @Entity @Table(name = "context_cat_concepts_lvl_1") -@IdClass(ConceptLevel1PK.class) public class ConceptLevel1 extends CtxInfoWithClaim { private static final long serialVersionUID = -759398689766245784L; - @Id - @Column(name = "id") - private String id; - - @Id - @Column(name = "ctx_id") - private String contextId; - - @Id - @Column(name = "cat_id") - private String categoryId; - - @Id - @Column(name = "c0_id") - private String conceptLevel0Id; - - @Override - public String getId() { - return id; - } - - @Override - public void setId(final String id) { - this.id = id; - } - - public String getContextId() { - return contextId; - } - - public void setContextId(final String contextId) { - this.contextId = contextId; - } - - public String getCategoryId() { - return categoryId; - } - - public void setCategoryId(final String categoryId) { - this.categoryId = categoryId; - } - - public String getConceptLevel0Id() { - return conceptLevel0Id; - } - - public void setConceptLevel0Id(final String conceptLevel0Id) { - this.conceptLevel0Id = conceptLevel0Id; - }; - } diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel1PK.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel1PK.java deleted file mode 100644 index 2da81418..00000000 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel1PK.java +++ /dev/null @@ -1,68 +0,0 @@ -package eu.dnetlib.is.context.model; - -import java.io.Serializable; -import java.util.Objects; - -public class ConceptLevel1PK implements Serializable { - - private static final long serialVersionUID = -7993480292203819163L; - - private String id; - - private String contextId; - - private String categoryId; - - private String conceptLevel0Id; - - public String getId() { - return id; - } - - public void setId(final String id) { - this.id = id; - } - - public String getContextId() { - return contextId; - } - - public void setContextId(final String contextId) { - this.contextId = contextId; - } - - public String getCategoryId() { - return categoryId; - } - - public void setCategoryId(final String categoryId) { - this.categoryId = categoryId; - } - - public String getConceptLevel0Id() { - return conceptLevel0Id; - } - - public void setConceptLevel0Id(final String conceptLevel0Id) { - this.conceptLevel0Id = conceptLevel0Id; - } - - @Override - public int hashCode() { - return Objects.hash(categoryId, conceptLevel0Id, contextId, id); - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { return true; } - if (!(obj instanceof ConceptLevel1PK)) { return false; } - final ConceptLevel1PK other = (ConceptLevel1PK) obj; - return Objects.equals(categoryId, other.categoryId) && Objects.equals(conceptLevel0Id, other.conceptLevel0Id) - && Objects.equals(contextId, other.contextId) && Objects.equals(id, other.id); - } - - @Override - public String toString() { - return String.format("ConceptLevel1PK [id=%s, contextId=%s, categoryId=%s, conceptLevel0Id=%s]", id, contextId, categoryId, conceptLevel0Id); - } -} diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel2.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel2.java index 31a88296..92a04000 100644 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel2.java +++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel2.java @@ -1,77 +1,12 @@ package eu.dnetlib.is.context.model; -import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.IdClass; import javax.persistence.Table; @Entity @Table(name = "context_cat_concepts_lvl_2") -@IdClass(ConceptLevel2PK.class) public class ConceptLevel2 extends CtxInfoWithClaim { private static final long serialVersionUID = 906131339592862096L; - @Id - @Column(name = "id") - private String id; - - @Id - @Column(name = "ctx_id") - private String contextId; - - @Id - @Column(name = "cat_id") - private String categoryId; - - @Id - @Column(name = "c0_id") - private String conceptLevel0Id; - - @Id - @Column(name = "c1_id") - private String conceptLevel1Id; - - @Override - public String getId() { - return id; - } - - @Override - public void setId(final String id) { - this.id = id; - } - - public String getContextId() { - return contextId; - } - - public void setContextId(final String contextId) { - this.contextId = contextId; - } - - public String getCategoryId() { - return categoryId; - } - - public void setCategoryId(final String categoryId) { - this.categoryId = categoryId; - } - - public String getConceptLevel0Id() { - return conceptLevel0Id; - } - - public void setConceptLevel0Id(final String conceptLevel0Id) { - this.conceptLevel0Id = conceptLevel0Id; - } - - public String getConceptLevel1Id() { - return conceptLevel1Id; - } - - public void setConceptLevel1Id(final String conceptLevel1Id) { - this.conceptLevel1Id = conceptLevel1Id; - } } diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel2PK.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel2PK.java deleted file mode 100644 index 0a7bc7f4..00000000 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/ConceptLevel2PK.java +++ /dev/null @@ -1,79 +0,0 @@ -package eu.dnetlib.is.context.model; - -import java.io.Serializable; -import java.util.Objects; - -public class ConceptLevel2PK implements Serializable { - - private static final long serialVersionUID = -5543486531261862945L; - - private String id; - - private String contextId; - - private String categoryId; - - private String conceptLevel0Id; - - private String conceptLevel1Id; - - public String getId() { - return id; - } - - public void setId(final String id) { - this.id = id; - } - - public String getContextId() { - return contextId; - } - - public void setContextId(final String contextId) { - this.contextId = contextId; - } - - public String getCategoryId() { - return categoryId; - } - - public void setCategoryId(final String categoryId) { - this.categoryId = categoryId; - } - - public String getConceptLevel0Id() { - return conceptLevel0Id; - } - - public void setConceptLevel0Id(final String conceptLevel0Id) { - this.conceptLevel0Id = conceptLevel0Id; - } - - public String getConceptLevel1Id() { - return conceptLevel1Id; - } - - public void setConceptLevel1Id(final String conceptLevel1Id) { - this.conceptLevel1Id = conceptLevel1Id; - } - - @Override - public int hashCode() { - return Objects.hash(categoryId, conceptLevel0Id, conceptLevel1Id, contextId, id); - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { return true; } - if (!(obj instanceof ConceptLevel2PK)) { return false; } - final ConceptLevel2PK other = (ConceptLevel2PK) obj; - return Objects.equals(categoryId, other.categoryId) && Objects.equals(conceptLevel0Id, other.conceptLevel0Id) - && Objects.equals(conceptLevel1Id, other.conceptLevel1Id) && Objects.equals(contextId, other.contextId) && Objects.equals(id, other.id); - } - - @Override - public String toString() { - return String - .format("ConceptLevel2PK [id=%s, contextId=%s, categoryId=%s, conceptLevel0Id=%s, conceptLevel1Id=%s]", id, contextId, categoryId, conceptLevel0Id, conceptLevel1Id); - } -} diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CtxInfo.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CtxInfo.java index 5406281d..6e928346 100644 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CtxInfo.java +++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CtxInfo.java @@ -3,6 +3,7 @@ package eu.dnetlib.is.context.model; import java.io.Serializable; import javax.persistence.Column; +import javax.persistence.Id; import javax.persistence.MappedSuperclass; import org.hibernate.annotations.Type; @@ -21,6 +22,10 @@ public abstract class CtxInfo implements Serializable { private static final long serialVersionUID = 4912082158208138795L; + @Id + @Column(name = "id") + private String id; + @Column(name = "label") private String label; @@ -28,9 +33,13 @@ public abstract class CtxInfo implements Serializable { @Column(name = "params") private Parameter[] parameters; - abstract public String getId(); + public String getId() { + return id; + } - abstract public void setId(final String id); + public void setId(final String id) { + this.id = id; + } public String getLabel() { return label; diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CtxInfoWithClaim.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CtxInfoWithClaim.java index 2f43ce37..a763a116 100644 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CtxInfoWithClaim.java +++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/CtxInfoWithClaim.java @@ -11,6 +11,9 @@ public abstract class CtxInfoWithClaim extends CtxInfo { @Column(name = "claim") private boolean claim; + @Column(name = "parent") + private String parent; + public boolean isClaim() { return claim; } @@ -19,4 +22,12 @@ public abstract class CtxInfoWithClaim extends CtxInfo { this.claim = claim; } + public String isParent() { + return parent; + } + + public void setParent(final String parent) { + this.parent = parent; + } + } diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/CategoryRepository.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/CategoryRepository.java index ab56bf2f..3f3f6d65 100644 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/CategoryRepository.java +++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/CategoryRepository.java @@ -3,9 +3,8 @@ package eu.dnetlib.is.context.model.repository; import org.springframework.data.jpa.repository.JpaRepository; import eu.dnetlib.is.context.model.Category; -import eu.dnetlib.is.context.model.CategoryPK; -public interface CategoryRepository extends JpaRepository { +public interface CategoryRepository extends JpaRepository { - Iterable findByContextIdOrderById(String contextId); + Iterable findByParentOrderById(String parent); } diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel0Repository.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel0Repository.java index 08b7508a..69eeeaff 100644 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel0Repository.java +++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel0Repository.java @@ -2,9 +2,11 @@ package eu.dnetlib.is.context.model.repository; import org.springframework.data.jpa.repository.JpaRepository; +import eu.dnetlib.is.context.model.Category; import eu.dnetlib.is.context.model.ConceptLevel0; -import eu.dnetlib.is.context.model.ConceptLevel0PK; -public interface ConceptLevel0Repository extends JpaRepository { +public interface ConceptLevel0Repository extends JpaRepository { + + Iterable findByParentOrderById(String parent); } diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel1Repository.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel1Repository.java index 7bd2bb4e..2d52f889 100644 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel1Repository.java +++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel1Repository.java @@ -2,9 +2,11 @@ package eu.dnetlib.is.context.model.repository; import org.springframework.data.jpa.repository.JpaRepository; +import eu.dnetlib.is.context.model.Category; import eu.dnetlib.is.context.model.ConceptLevel1; -import eu.dnetlib.is.context.model.ConceptLevel1PK; -public interface ConceptLevel1Repository extends JpaRepository { +public interface ConceptLevel1Repository extends JpaRepository { + + Iterable findByParentOrderById(String parent); } diff --git a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel2Repository.java b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel2Repository.java index 77ed3d36..25d3d697 100644 --- a/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel2Repository.java +++ b/libs/dnet-is-common/src/main/java/eu/dnetlib/is/context/model/repository/ConceptLevel2Repository.java @@ -2,9 +2,11 @@ package eu.dnetlib.is.context.model.repository; import org.springframework.data.jpa.repository.JpaRepository; +import eu.dnetlib.is.context.model.Category; import eu.dnetlib.is.context.model.ConceptLevel2; -import eu.dnetlib.is.context.model.ConceptLevel2PK; -public interface ConceptLevel2Repository extends JpaRepository { +public interface ConceptLevel2Repository extends JpaRepository { + + Iterable findByParentOrderById(String parent); } diff --git a/libs/dnet-is-common/src/main/resources/sql/schema.sql b/libs/dnet-is-common/src/main/resources/sql/schema.sql index f7364c57..656e785d 100644 --- a/libs/dnet-is-common/src/main/resources/sql/schema.sql +++ b/libs/dnet-is-common/src/main/resources/sql/schema.sql @@ -27,52 +27,39 @@ CREATE TABLE contexts ( ); CREATE TABLE context_categories ( - ctx_id text NOT NULL REFERENCES contexts(id) ON UPDATE CASCADE ON DELETE CASCADE, - id text NOT NULL, + id text NOT NULL PRIMARY KEY, + parent text NOT NULL REFERENCES contexts(id) ON UPDATE CASCADE ON DELETE CASCADE, label text NOT NULL, claim boolean NOT NULL, - params jsonb, - PRIMARY KEY (ctx_id, id) + params jsonb ); CREATE TABLE context_cat_concepts_lvl_0 ( - ctx_id text NOT NULL REFERENCES contexts(id) ON UPDATE CASCADE ON DELETE CASCADE, - cat_id text NOT NULL, - id text NOT NULL, + id text NOT NULL PRIMARY KEY, + parent text NOT NULL REFERENCES context_categories(id) ON UPDATE CASCADE ON DELETE CASCADE, label text NOT NULL, claim boolean NOT NULL, - params jsonb, - PRIMARY KEY (ctx_id, cat_id, id), - FOREIGN KEY (ctx_id, cat_id) REFERENCES context_categories(ctx_id, id) ON UPDATE CASCADE ON DELETE CASCADE + params jsonb ); CREATE TABLE context_cat_concepts_lvl_1 ( - ctx_id text NOT NULL REFERENCES contexts(id) ON UPDATE CASCADE ON DELETE CASCADE, - cat_id text NOT NULL, - c0_id text NOT NULL, - id text NOT NULL, + id text NOT NULL PRIMARY KEY, + parent text NOT NULL REFERENCES context_cat_concepts_lvl_0(id) ON UPDATE CASCADE ON DELETE CASCADE, label text NOT NULL, claim boolean NOT NULL, - params jsonb, - PRIMARY KEY (ctx_id, cat_id, c0_id, id), - FOREIGN KEY (ctx_id, cat_id, c0_id) REFERENCES context_cat_concepts_lvl_0(ctx_id, cat_id, id) ON UPDATE CASCADE ON DELETE CASCADE + params jsonb ); CREATE TABLE context_cat_concepts_lvl_2 ( - ctx_id text NOT NULL REFERENCES contexts(id) ON UPDATE CASCADE ON DELETE CASCADE, - cat_id text NOT NULL, - c0_id text NOT NULL, - c1_id text NOT NULL, - id text NOT NULL, + id text NOT NULL PRIMARY KEY, + parent text NOT NULL REFERENCES context_cat_concepts_lvl_1(id) ON UPDATE CASCADE ON DELETE CASCADE, label text NOT NULL, claim boolean NOT NULL, - params jsonb, - PRIMARY KEY (ctx_id, cat_id, c0_id, c1_id, id), - FOREIGN KEY (ctx_id, cat_id, c0_id, c1_id) REFERENCES context_cat_concepts_lvl_1(ctx_id, cat_id, c0_id, id) ON UPDATE CASCADE ON DELETE CASCADE + params jsonb ); -CREATE INDEX ON context_categories (ctx_id); -CREATE INDEX ON context_cat_concepts_lvl_0 (ctx_id, cat_id); -CREATE INDEX ON context_cat_concepts_lvl_1 (ctx_id, cat_id, c0_id); -CREATE INDEX ON context_cat_concepts_lvl_2 (ctx_id, cat_id, c0_id, c1_id); +CREATE INDEX ON context_categories (parent); +CREATE INDEX ON context_cat_concepts_lvl_0 (parent); +CREATE INDEX ON context_cat_concepts_lvl_1 (parent); +CREATE INDEX ON context_cat_concepts_lvl_2 (parent);