diff --git a/src/main/java/org/gcube/application/geoportal/model/ArchiveDescriptor.java b/src/main/java/org/gcube/application/geoportal/model/ArchiveDescriptor.java index 8faff5d..9845852 100644 --- a/src/main/java/org/gcube/application/geoportal/model/ArchiveDescriptor.java +++ b/src/main/java/org/gcube/application/geoportal/model/ArchiveDescriptor.java @@ -1,9 +1,10 @@ package org.gcube.application.geoportal.model; import java.util.ArrayList; -import java.util.Map; +import javax.persistence.CascadeType; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.OneToMany; @@ -23,14 +24,15 @@ public class ArchiveDescriptor { // content private String archiveLocation; - @OneToMany + @OneToMany(cascade=CascadeType.ALL, mappedBy="archive",fetch=FetchType.EAGER) private ArrayList attachments; // meta private String metadataID; - private Map layers; + @OneToMany(cascade=CascadeType.ALL, mappedBy="archive",fetch=FetchType.EAGER) + private ArrayList layers; } diff --git a/src/main/java/org/gcube/application/geoportal/model/AssociatedContent.java b/src/main/java/org/gcube/application/geoportal/model/AssociatedContent.java index 3ac50b8..be0349e 100644 --- a/src/main/java/org/gcube/application/geoportal/model/AssociatedContent.java +++ b/src/main/java/org/gcube/application/geoportal/model/AssociatedContent.java @@ -3,6 +3,8 @@ package org.gcube.application.geoportal.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; @Entity public class AssociatedContent { @@ -20,5 +22,7 @@ public class AssociatedContent { private String itemID; private String link; - + @ManyToOne + @JoinColumn(name="archive_uuid", nullable=false) + private ArchiveDescriptor archive; } diff --git a/src/main/java/org/gcube/application/geoportal/model/LayerDescriptor.java b/src/main/java/org/gcube/application/geoportal/model/LayerDescriptor.java index dda16d0..de5708f 100644 --- a/src/main/java/org/gcube/application/geoportal/model/LayerDescriptor.java +++ b/src/main/java/org/gcube/application/geoportal/model/LayerDescriptor.java @@ -1,5 +1,17 @@ package org.gcube.application.geoportal.model; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@Entity public class LayerDescriptor { + @Id + private String uuid; + + @ManyToOne + @JoinColumn(name="archive_uuid", nullable=false) + private ArchiveDescriptor archive; } diff --git a/src/test/java/org/gcube/application/geoportal/db/Archives.java b/src/test/java/org/gcube/application/geoportal/db/Archives.java index c043419..cdd1ef5 100644 --- a/src/test/java/org/gcube/application/geoportal/db/Archives.java +++ b/src/test/java/org/gcube/application/geoportal/db/Archives.java @@ -4,7 +4,7 @@ import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; -import org.junit.BeforeClass; +import org.gcube.application.geoportal.model.ArchiveDescriptor; import org.junit.Test; public class Archives { @@ -21,7 +21,9 @@ public class Archives { @Test public void listExistent() { -// EntityManager em = jpaResourceBean.getEMF().createEntityManager(); + + EntityManager em = getEMF().createEntityManager(); + em.find(ArchiveDescriptor.class, "some"); } } diff --git a/src/test/resources/META-INF/persistence.xml b/src/test/resources/META-INF/persistence.xml index cfa62bc..9f5cb93 100644 --- a/src/test/resources/META-INF/persistence.xml +++ b/src/test/resources/META-INF/persistence.xml @@ -1,12 +1,19 @@ - + org.gcube.application.geoportal.model.ArchiveDescriptor org.gcube.application.geoportal.model.AssociatedContent + org.gcube.application.geoportal.model.LayerDescriptor - - - + + + + + - \ No newline at end of file + + \ No newline at end of file