diff --git a/dmp-backend/pom.xml b/dmp-backend/pom.xml
index 3e790fb93..324adee61 100644
--- a/dmp-backend/pom.xml
+++ b/dmp-backend/pom.xml
@@ -142,6 +142,13 @@
2.8.4
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-hibernate5
+ 2.8.4
+
+
+
diff --git a/dmp-backend/src/main/java/dao/entities/DMPDao.java b/dmp-backend/src/main/java/dao/entities/DMPDao.java
index 45012ea39..d4223aadf 100644
--- a/dmp-backend/src/main/java/dao/entities/DMPDao.java
+++ b/dmp-backend/src/main/java/dao/entities/DMPDao.java
@@ -14,6 +14,9 @@ public interface DMPDao extends Dao {
List listAllIDsLabels();
+ List listUserDMPs(String username);
+
+
// public boolean createFromForm();
diff --git a/dmp-backend/src/main/java/dao/entities/DMPDaoImpl.java b/dmp-backend/src/main/java/dao/entities/DMPDaoImpl.java
index d00fa59f4..07e5f6e7a 100644
--- a/dmp-backend/src/main/java/dao/entities/DMPDaoImpl.java
+++ b/dmp-backend/src/main/java/dao/entities/DMPDaoImpl.java
@@ -11,6 +11,7 @@ import org.hibernate.query.Query;
import dao.JpaDao;
import entities.DMP;
+import entities.UserInfo;
import entities.responses.IDLabelPair;
public class DMPDaoImpl extends JpaDao implements DMPDao {
@@ -39,6 +40,23 @@ public class DMPDaoImpl extends JpaDao implements DMPDao {
.collect(Collectors.toList());
}
+ @Override
+ public List listUserDMPs(String username) {
+
+// String queryString = "select ui from UserInfo ui join UserAuth ui.authentication ua where ua.username=:username";
+
+
+// TypedQuery typedQuery = entityManager.createQuery(queryString, UserInfo.class);
+// typedQuery.setParameter("username", username);
+
+ return null;
+ }
+
+
+
+
+
+
// @Override
// public boolean createFromForm(Map keyVals) {
// String query = "insert into DMP () values"
diff --git a/dmp-backend/src/main/java/entities/DMP.java b/dmp-backend/src/main/java/entities/DMP.java
index ed5bf9f60..52216d150 100644
--- a/dmp-backend/src/main/java/entities/DMP.java
+++ b/dmp-backend/src/main/java/entities/DMP.java
@@ -20,10 +20,14 @@ import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
@@ -31,14 +35,15 @@ import com.fasterxml.jackson.databind.SerializationFeature;
@Entity
@Table(name="\"DMP\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class DMP implements Serializable {
private static final long serialVersionUID = -8263056535208547615L;
-
@Id
@GeneratedValue
@GenericGenerator(name = "uuid2", strategy = "uuid2")
@@ -55,10 +60,11 @@ public class DMP implements Serializable {
@Column(name = "\"Version\"")
private Integer version;
- @OneToOne(mappedBy = "dmp", fetch = FetchType.EAGER)
- private Dataset dataset;
+ @OneToMany(mappedBy = "dmp", fetch = FetchType.LAZY)
+ private Set dataset;
- @OneToOne(fetch = FetchType.EAGER)
+
+ @ManyToOne()
@JoinColumn(name = "\"Project\"")
private Project project;
@@ -67,12 +73,12 @@ public class DMP implements Serializable {
@Column(name = "\"ProfileData\"", columnDefinition = "xml", nullable = true)
private String profileData;
- @OneToOne(fetch = FetchType.EAGER)
+ @OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "\"Profile\"")
private DMPProfile profile;
- @OneToMany(fetch = FetchType.EAGER)
+ @OneToMany(fetch = FetchType.LAZY)
@JoinTable(name="\"DMPOrganisation\"",
joinColumns={@JoinColumn(name="\"DMP\"", referencedColumnName="\"ID\"")},
inverseJoinColumns={@JoinColumn(name="\"Organisation\"", referencedColumnName="\"ID\"")}
@@ -80,7 +86,7 @@ public class DMP implements Serializable {
private Set organisations;
- @OneToMany(fetch = FetchType.EAGER)
+ @OneToMany(fetch = FetchType.LAZY)
@JoinTable(name="\"DMPResearcher\"",
joinColumns={@JoinColumn(name="\"DMP\"", referencedColumnName="\"ID\"")},
inverseJoinColumns={@JoinColumn(name="\"Researcher\"", referencedColumnName="\"ID\"")}
@@ -88,7 +94,7 @@ public class DMP implements Serializable {
private Set researchers;
- @OneToMany(fetch = FetchType.EAGER)
+ @OneToMany(fetch = FetchType.LAZY)
@JoinTable(name="\"UserDMP\"",
joinColumns={@JoinColumn(name="dmp", referencedColumnName="\"ID\"")},
inverseJoinColumns={@JoinColumn(name="usr", referencedColumnName="id")}
@@ -161,14 +167,14 @@ public class DMP implements Serializable {
this.profile = profile;
}
- public Dataset getDataset() {
+ public Set getDataset() {
return dataset;
}
- public void setDataset(Dataset dataset) {
+ public void setDataset(Set dataset) {
this.dataset = dataset;
}
-
+
public Set getOrganisations() {
return organisations;
}
diff --git a/dmp-backend/src/main/java/entities/DMPOrganisation.java b/dmp-backend/src/main/java/entities/DMPOrganisation.java
index 24c57c880..5b3d7d69d 100644
--- a/dmp-backend/src/main/java/entities/DMPOrganisation.java
+++ b/dmp-backend/src/main/java/entities/DMPOrganisation.java
@@ -11,15 +11,20 @@ import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"DMPOrganisation\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class DMPOrganisation implements Serializable {
diff --git a/dmp-backend/src/main/java/entities/DMPProfile.java b/dmp-backend/src/main/java/entities/DMPProfile.java
index c45dcf38f..fdf8354fc 100644
--- a/dmp-backend/src/main/java/entities/DMPProfile.java
+++ b/dmp-backend/src/main/java/entities/DMPProfile.java
@@ -14,15 +14,20 @@ import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"DMPProfile\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class DMPProfile implements Serializable {
private static final long serialVersionUID = 3213099144442689808L;
@@ -37,7 +42,7 @@ public class DMPProfile implements Serializable {
private UUID id;
- @OneToOne(fetch = FetchType.EAGER, mappedBy = "profile")
+ @OneToOne(fetch = FetchType.LAZY, mappedBy = "profile")
private DMP dmp;
diff --git a/dmp-backend/src/main/java/entities/DMPResearcher.java b/dmp-backend/src/main/java/entities/DMPResearcher.java
index 0973b9ba2..5d17ee075 100644
--- a/dmp-backend/src/main/java/entities/DMPResearcher.java
+++ b/dmp-backend/src/main/java/entities/DMPResearcher.java
@@ -11,15 +11,20 @@ import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"DMPResearcher\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class DMPResearcher implements Serializable {
private static final long serialVersionUID = 135449857355252959L;
diff --git a/dmp-backend/src/main/java/entities/DataRepository.java b/dmp-backend/src/main/java/entities/DataRepository.java
index f1ca03ec8..4213b18ae 100644
--- a/dmp-backend/src/main/java/entities/DataRepository.java
+++ b/dmp-backend/src/main/java/entities/DataRepository.java
@@ -18,14 +18,19 @@ import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"DataRepository\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class DataRepository implements Serializable {
diff --git a/dmp-backend/src/main/java/entities/Dataset.java b/dmp-backend/src/main/java/entities/Dataset.java
index 132e1bc51..421bcce5d 100644
--- a/dmp-backend/src/main/java/entities/Dataset.java
+++ b/dmp-backend/src/main/java/entities/Dataset.java
@@ -13,20 +13,26 @@ import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
+import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity(name = "Dataset")
@Table(name="\"Dataset\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class Dataset implements Serializable {
private static final long serialVersionUID = 3575723814399553259L;
@@ -44,7 +50,7 @@ public class Dataset implements Serializable {
private String label;
- @OneToOne(fetch = FetchType.EAGER)
+ @ManyToOne(fetch = FetchType.EAGER)
// @Cascade(value=org.hibernate.annotations.CascadeType.ALL)
@JoinColumn(name = "\"DMP\"", nullable = true)
private DMP dmp;
@@ -58,12 +64,13 @@ public class Dataset implements Serializable {
private String properties;
- @OneToOne(fetch = FetchType.EAGER)
+ @ManyToOne(fetch = FetchType.EAGER)
//@Cascade(value=org.hibernate.annotations.CascadeType.ALL)
@JoinColumn(name = "\"Profile\"", nullable = true)
private DatasetProfile profile;
+
@OneToMany(fetch = FetchType.EAGER)
@JoinTable(name="\"DatasetDataRepository\"",
joinColumns={@JoinColumn(name="\"Dataset\"", referencedColumnName="\"ID\"")},
diff --git a/dmp-backend/src/main/java/entities/DatasetDataRepository.java b/dmp-backend/src/main/java/entities/DatasetDataRepository.java
index a72b2864b..d625471d4 100644
--- a/dmp-backend/src/main/java/entities/DatasetDataRepository.java
+++ b/dmp-backend/src/main/java/entities/DatasetDataRepository.java
@@ -11,15 +11,20 @@ import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"DatasetDataRepository\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class DatasetDataRepository implements Serializable {
diff --git a/dmp-backend/src/main/java/entities/DatasetProfile.java b/dmp-backend/src/main/java/entities/DatasetProfile.java
index 016ac1633..44db91616 100644
--- a/dmp-backend/src/main/java/entities/DatasetProfile.java
+++ b/dmp-backend/src/main/java/entities/DatasetProfile.java
@@ -2,6 +2,7 @@ package entities;
import java.io.Serializable;
+import java.util.Set;
import java.util.UUID;
import javax.persistence.CascadeType;
@@ -11,6 +12,7 @@ import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
+import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@@ -20,13 +22,16 @@ import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"DatasetProfile\"")
-//@Proxy(lazy = false)
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class DatasetProfile implements Serializable {
@@ -44,8 +49,13 @@ public class DatasetProfile implements Serializable {
@Column(name = "\"Label\"")
private String label;
- @OneToOne(fetch = FetchType.EAGER, mappedBy = "profile")
- private Dataset dataset;
+// @OneToOne(fetch = FetchType.EAGER, mappedBy = "profile")
+// private Dataset dataset;
+
+ @OneToMany(fetch = FetchType.EAGER, mappedBy = "profile")
+ private Set dataset;
+
+
@OneToOne(fetch = FetchType.EAGER)
// @Cascade(value=org.hibernate.annotations.CascadeType.ALL)
@@ -105,11 +115,13 @@ public class DatasetProfile implements Serializable {
this.definition = definition;
}
- public Dataset getDataset() {
+
+
+ public Set getDataset() {
return dataset;
}
- public void setDataset(Dataset dataset) {
+ public void setDataset(Set dataset) {
this.dataset = dataset;
}
diff --git a/dmp-backend/src/main/java/entities/DatasetProfileRuleset.java b/dmp-backend/src/main/java/entities/DatasetProfileRuleset.java
index a87db74db..40be7b1ba 100644
--- a/dmp-backend/src/main/java/entities/DatasetProfileRuleset.java
+++ b/dmp-backend/src/main/java/entities/DatasetProfileRuleset.java
@@ -14,17 +14,22 @@ import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import org.json.JSONObject;
import org.json.XML;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"DatasetProfileRuleset\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class DatasetProfileRuleset implements Serializable {
private static final long serialVersionUID = 4249565129050898613L;
diff --git a/dmp-backend/src/main/java/entities/DatasetProfileViewstyle.java b/dmp-backend/src/main/java/entities/DatasetProfileViewstyle.java
index c4abd72d0..64011c2fc 100644
--- a/dmp-backend/src/main/java/entities/DatasetProfileViewstyle.java
+++ b/dmp-backend/src/main/java/entities/DatasetProfileViewstyle.java
@@ -14,16 +14,21 @@ import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import org.json.XML;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"DatasetProfileViewstyle\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class DatasetProfileViewstyle implements Serializable {
private static final long serialVersionUID = -3251295258160291468L;
diff --git a/dmp-backend/src/main/java/entities/DatasetRegistry.java b/dmp-backend/src/main/java/entities/DatasetRegistry.java
index 58209c03e..58ba36446 100644
--- a/dmp-backend/src/main/java/entities/DatasetRegistry.java
+++ b/dmp-backend/src/main/java/entities/DatasetRegistry.java
@@ -11,15 +11,20 @@ import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"DatasetRegistry\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class DatasetRegistry implements Serializable {
private static final long serialVersionUID = -5594183793725819187L;
diff --git a/dmp-backend/src/main/java/entities/DatasetService.java b/dmp-backend/src/main/java/entities/DatasetService.java
index c6c133500..f3ffd3fb1 100644
--- a/dmp-backend/src/main/java/entities/DatasetService.java
+++ b/dmp-backend/src/main/java/entities/DatasetService.java
@@ -11,15 +11,20 @@ import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"DatasetService\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class DatasetService implements Serializable {
private static final long serialVersionUID = 1469161193939096037L;
diff --git a/dmp-backend/src/main/java/entities/Organisation.java b/dmp-backend/src/main/java/entities/Organisation.java
index f046046e1..a720e32f2 100644
--- a/dmp-backend/src/main/java/entities/Organisation.java
+++ b/dmp-backend/src/main/java/entities/Organisation.java
@@ -17,15 +17,20 @@ import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"Organisation\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class Organisation implements Serializable {
@@ -58,7 +63,7 @@ public class Organisation implements Serializable {
private String definition;
- @OneToMany(fetch = FetchType.EAGER, cascade=CascadeType.ALL)
+ @OneToMany(fetch = FetchType.LAZY)
@JoinTable(name="\"DMPOrganisation\"",
joinColumns={@JoinColumn(name="\"Organisation\"", referencedColumnName="\"ID\"")},
inverseJoinColumns={@JoinColumn(name="\"DMP\"", referencedColumnName="\"ID\"")}
diff --git a/dmp-backend/src/main/java/entities/Project.java b/dmp-backend/src/main/java/entities/Project.java
index ba822afbd..c6d1aef5d 100644
--- a/dmp-backend/src/main/java/entities/Project.java
+++ b/dmp-backend/src/main/java/entities/Project.java
@@ -16,10 +16,13 @@ import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
@@ -27,6 +30,8 @@ import com.fasterxml.jackson.databind.SerializationFeature;
@Entity
@Table(name="\"Project\"")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Project implements Serializable {
@@ -42,8 +47,8 @@ public class Project implements Serializable {
private UUID id;
- @OneToOne(fetch = FetchType.EAGER, mappedBy = "project")
- private DMP dmp;
+ @OneToMany(mappedBy = "project")
+ private Set dmps;
@Column(name = "\"Label\"")
@@ -111,14 +116,16 @@ public class Project implements Serializable {
this.definition = definition;
}
-
- public DMP getDMP() {
- return dmp;
- }
- public void setDMP(DMP dmp) {
- this.dmp = dmp;
- }
+ public Set getDmps() {
+ return dmps;
+ }
+
+ public void setDmps(Set dmps) {
+ this.dmps = dmps;
+ }
+
+
public String toString() {
try {
@@ -127,6 +134,7 @@ public class Project implements Serializable {
return "";
}
}
-
+
+
}
diff --git a/dmp-backend/src/main/java/entities/Registry.java b/dmp-backend/src/main/java/entities/Registry.java
index 1a24da42e..3fff1a0df 100644
--- a/dmp-backend/src/main/java/entities/Registry.java
+++ b/dmp-backend/src/main/java/entities/Registry.java
@@ -17,15 +17,20 @@ import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"Registry\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class Registry implements Serializable {
private static final long serialVersionUID = -277572262583178090L;
@@ -57,7 +62,7 @@ public class Registry implements Serializable {
private String definition;
- @OneToMany(fetch = FetchType.EAGER, cascade=CascadeType.ALL)
+ @OneToMany(fetch = FetchType.EAGER)
@JoinTable(name="\"DatasetRegistry\"",
joinColumns={@JoinColumn(name="\"Registry\"", referencedColumnName="\"ID\"")},
inverseJoinColumns={@JoinColumn(name="\"Dataset\"", referencedColumnName="\"ID\"")}
diff --git a/dmp-backend/src/main/java/entities/Researcher.java b/dmp-backend/src/main/java/entities/Researcher.java
index a8ba70f02..1ef03aaa6 100644
--- a/dmp-backend/src/main/java/entities/Researcher.java
+++ b/dmp-backend/src/main/java/entities/Researcher.java
@@ -17,15 +17,20 @@ import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"Researcher\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class Researcher implements Serializable {
@@ -58,7 +63,7 @@ public class Researcher implements Serializable {
private String reference;
- @OneToMany(fetch = FetchType.EAGER, cascade=CascadeType.ALL)
+ @OneToMany(fetch = FetchType.LAZY)
@JoinTable(name="\"DMPResearcher\"",
joinColumns={@JoinColumn(name="\"Researcher\"", referencedColumnName="\"ID\"")},
inverseJoinColumns={@JoinColumn(name="\"DMP\"", referencedColumnName="\"ID\"")}
diff --git a/dmp-backend/src/main/java/entities/Service.java b/dmp-backend/src/main/java/entities/Service.java
index dc1a2a406..b69de373b 100644
--- a/dmp-backend/src/main/java/entities/Service.java
+++ b/dmp-backend/src/main/java/entities/Service.java
@@ -19,15 +19,20 @@ import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"Service\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class Service implements Serializable {
private static final long serialVersionUID = 7243446610500174060L;
diff --git a/dmp-backend/src/main/java/entities/UserDMP.java b/dmp-backend/src/main/java/entities/UserDMP.java
index 1ffba53f9..5d525641d 100644
--- a/dmp-backend/src/main/java/entities/UserDMP.java
+++ b/dmp-backend/src/main/java/entities/UserDMP.java
@@ -10,18 +10,22 @@ import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"UserDMP\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class UserDMP implements Serializable{
private static final long serialVersionUID = -4467370784003784660L;
-
@Id
@GeneratedValue
diff --git a/dmp-backend/src/main/java/entities/UserInfo.java b/dmp-backend/src/main/java/entities/UserInfo.java
index c99655367..acf7c28cd 100644
--- a/dmp-backend/src/main/java/entities/UserInfo.java
+++ b/dmp-backend/src/main/java/entities/UserInfo.java
@@ -19,17 +19,22 @@ import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
import org.hibernate.annotations.Type;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import entities.security.UserAuth;
@Entity
@Table(name="\"UserInfo\"")
-@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class UserInfo implements Serializable{
private static final long serialVersionUID = 1225151430484658395L;
@@ -73,7 +78,7 @@ public class UserInfo implements Serializable{
@Column(name = "additionalinfo", columnDefinition = "xml", nullable = true)
private String additionalinfo;
- @OneToMany(fetch = FetchType.EAGER)
+ @OneToMany(fetch = FetchType.LAZY)
@JoinTable(name="\"UserDMP\"",
joinColumns={@JoinColumn(name="usr", referencedColumnName="id")},
inverseJoinColumns={@JoinColumn(name="dmp", referencedColumnName="\"ID\"")}
diff --git a/dmp-backend/src/main/java/entities/security/UserAuth.java b/dmp-backend/src/main/java/entities/security/UserAuth.java
index daafca794..f8f7b2766 100644
--- a/dmp-backend/src/main/java/entities/security/UserAuth.java
+++ b/dmp-backend/src/main/java/entities/security/UserAuth.java
@@ -9,9 +9,18 @@ import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Proxy;
+
+import com.fasterxml.jackson.annotation.JsonIdentityInfo;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.ObjectIdGenerators;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
@Entity
@Table(name="\"UserAuth\"")
+//@Proxy(lazy = false)
+//@JsonInclude(Include.NON_NULL)
+@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="id")
public class UserAuth {
@Id
diff --git a/dmp-backend/src/main/java/helpers/SerializerProvider.java b/dmp-backend/src/main/java/helpers/SerializerProvider.java
new file mode 100644
index 000000000..be9380a19
--- /dev/null
+++ b/dmp-backend/src/main/java/helpers/SerializerProvider.java
@@ -0,0 +1,22 @@
+package helpers;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module;
+
+
+public class SerializerProvider {
+
+
+ private static ObjectMapper objectMapper = new ObjectMapper()
+// .setSerializationInclusion(Include.NON_NULL)
+// .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
+ .registerModule(new Hibernate5Module())
+ ;
+
+
+ public static ObjectMapper getJsonSerializer() {
+ return objectMapper;
+ }
+
+
+}
diff --git a/dmp-backend/src/main/java/helpers/Transformers.java b/dmp-backend/src/main/java/helpers/Transformers.java
index 7f1f35f74..679af3f5a 100644
--- a/dmp-backend/src/main/java/helpers/Transformers.java
+++ b/dmp-backend/src/main/java/helpers/Transformers.java
@@ -2,6 +2,7 @@ package helpers;
import java.util.Arrays;
import java.util.HashSet;
+import java.util.Set;
import java.util.UUID;
import org.springframework.util.MultiValueMap;
@@ -80,6 +81,9 @@ public class Transformers {
ds.setRegistries(new HashSet(Arrays.asList(reg)));
ds.setServices(new HashSet(Arrays.asList(ser)));
+ Set datasets = new HashSet();
+ datasets.add(ds);
+
DMP dmp = new DMP();
dmp.setLabel(formData.getFirst("DMP.label"));
@@ -90,7 +94,7 @@ public class Transformers {
dmp.setProfileData(formData.getFirst("DMP.profileData"));
dmp.setProject(project);
dmp.setVersion(Integer.parseInt(formData.getFirst("DMP.version")));
- dmp.setDataset(ds);
+ dmp.setDataset(datasets);
System.out.println(dmp);
diff --git a/dmp-backend/src/main/java/rest/entities/DMPs.java b/dmp-backend/src/main/java/rest/entities/DMPs.java
index 179ad8508..a3ec75513 100644
--- a/dmp-backend/src/main/java/rest/entities/DMPs.java
+++ b/dmp-backend/src/main/java/rest/entities/DMPs.java
@@ -1,18 +1,15 @@
package rest.entities;
-import java.io.Console;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import javax.transaction.Transactional;
-import org.apache.commons.lang3.SerializationUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
-import org.springframework.util.MultiValueMap;
+import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
@@ -22,7 +19,9 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mchange.v2.sql.filter.SynchronizedFilterDataSource;
@@ -38,13 +37,16 @@ import dao.entities.ProjectDao;
import dao.entities.RegistryDao;
import dao.entities.ResearcherDao;
import dao.entities.ServiceDao;
+import dao.entities.UserInfoDao;
import entities.DMP;
import entities.DMPProfile;
import entities.Dataset;
import entities.DatasetProfile;
import entities.DatasetProfileRuleset;
import entities.Project;
+import entities.UserInfo;
import entities.responses.IDLabelPair;
+import helpers.SerializerProvider;
import helpers.Transformers;
import responses.RestResponse;
@@ -65,9 +67,11 @@ public class DMPs {
@Autowired private RegistryDao registryDao;
@Autowired private ResearcherDao researcherDao;
@Autowired private ServiceDao serviceDao;
+ @Autowired private UserInfoDao userInfoDao;
- private ObjectMapper objectMapper = new ObjectMapper();
+ private ObjectMapper objectMapper = SerializerProvider.getJsonSerializer();
+
// FETCH BY DMP(S)
@@ -75,20 +79,26 @@ public class DMPs {
public @ResponseBody ResponseEntity