From f623ea2b03a2b24025f4baa1d0d6482e8d2caec9 Mon Sep 17 00:00:00 2001
From: Mirco Nasuti <mirco.nasuti@chuv.ch>
Date: Mon, 7 Dec 2015 14:47:59 +0100
Subject: [PATCH] persistence is ready to be used except data field from
 Dataset

---
 src/main/java/org/hbp/mip/model/Article.java   | 18 ++++++++++--------
 src/main/java/org/hbp/mip/model/Chart.java     |  5 +++++
 .../java/org/hbp/mip/model/ChartConfigSet.java |  8 ++++++++
 src/main/java/org/hbp/mip/model/Dataset.java   | 14 +++++++++-----
 src/main/java/org/hbp/mip/model/Filter.java    |  6 ++++++
 src/main/java/org/hbp/mip/model/Group.java     |  5 +++++
 src/main/java/org/hbp/mip/model/Model.java     |  9 +++++++++
 src/main/java/org/hbp/mip/model/Query.java     |  8 ++++++++
 src/main/java/org/hbp/mip/model/Tag.java       |  8 ++++++++
 src/main/java/org/hbp/mip/model/User.java      |  6 ++++++
 src/main/java/org/hbp/mip/model/Value.java     |  8 ++++++++
 src/main/java/org/hbp/mip/model/Variable.java  |  6 ++++++
 src/main/resources/hibernate.cfg.xml           | 11 +++++++++++
 13 files changed, 99 insertions(+), 13 deletions(-)

diff --git a/src/main/java/org/hbp/mip/model/Article.java b/src/main/java/org/hbp/mip/model/Article.java
index 0b3a957d4..3ac1f8f48 100644
--- a/src/main/java/org/hbp/mip/model/Article.java
+++ b/src/main/java/org/hbp/mip/model/Article.java
@@ -4,11 +4,10 @@
 
 package org.hbp.mip.model;
 
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
+import javax.persistence.*;
 import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
 
 @Entity
 public class Article {
@@ -23,9 +22,12 @@ public class Article {
     private Date publishedAt;
     private Date createdAt;
     private Date updatedAt;
-    /*private User createdBy;
+    @ManyToOne
+    private User createdBy;
+    @ManyToOne
     private User updatedBy;
-    private List<Tag> tags;*/
+    @ManyToMany
+    private List<Tag> tags;
 
     public Article() {
     }
@@ -102,7 +104,7 @@ public class Article {
         this.updatedAt = updatedAt;
     }
 
-    /*public User getCreatedBy() {
+    public User getCreatedBy() {
         return createdBy;
     }
 
@@ -131,5 +133,5 @@ public class Article {
             this.tags = new LinkedList<>();
         }
         this.tags.add(tag);
-    }*/
+    }
 }
diff --git a/src/main/java/org/hbp/mip/model/Chart.java b/src/main/java/org/hbp/mip/model/Chart.java
index ea24b36d8..382f9ac91 100644
--- a/src/main/java/org/hbp/mip/model/Chart.java
+++ b/src/main/java/org/hbp/mip/model/Chart.java
@@ -4,13 +4,18 @@
 
 package org.hbp.mip.model;
 
+import javax.persistence.*;
 import java.util.LinkedList;
 import java.util.List;
 
+@Entity
 public class Chart {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
     private String chartType;
     private String xAxis;
+    @ManyToMany
     private List<ChartConfigSet> chartConfigSets;
 
     public Chart() {
diff --git a/src/main/java/org/hbp/mip/model/ChartConfigSet.java b/src/main/java/org/hbp/mip/model/ChartConfigSet.java
index a5a1d0ed3..040f240c6 100644
--- a/src/main/java/org/hbp/mip/model/ChartConfigSet.java
+++ b/src/main/java/org/hbp/mip/model/ChartConfigSet.java
@@ -4,7 +4,15 @@
 
 package org.hbp.mip.model;
 
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Entity
 public class ChartConfigSet {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
     private String code;
     private String label;
diff --git a/src/main/java/org/hbp/mip/model/Dataset.java b/src/main/java/org/hbp/mip/model/Dataset.java
index fd9b66f8f..38f042443 100644
--- a/src/main/java/org/hbp/mip/model/Dataset.java
+++ b/src/main/java/org/hbp/mip/model/Dataset.java
@@ -4,17 +4,21 @@
 
 package org.hbp.mip.model;
 
+import javax.persistence.*;
 import java.util.Date;
-import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
 
+@Entity
 public class Dataset {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
     private String code;
     private Date date;
+    @ElementCollection
     private List<String> header;
-    private List<Map<String, List<Object>>> data;
+    //@ElementCollection
+    //private List<Map<String, List<Object>>> data;
 
     public Dataset() {
     }
@@ -51,7 +55,7 @@ public class Dataset {
         this.header = header;
     }
 
-    public List<Map<String, List<Object>>> getData() {
+    /*public List<Map<String, List<Object>>> getData() {
         return data;
     }
 
@@ -70,5 +74,5 @@ public class Dataset {
             this.data = new LinkedList<>();
         }
         this.data.add(map);
-    }
+    }*/
 }
diff --git a/src/main/java/org/hbp/mip/model/Filter.java b/src/main/java/org/hbp/mip/model/Filter.java
index d7af73d41..3c24be73f 100644
--- a/src/main/java/org/hbp/mip/model/Filter.java
+++ b/src/main/java/org/hbp/mip/model/Filter.java
@@ -4,8 +4,14 @@
 
 package org.hbp.mip.model;
 
+import javax.persistence.*;
+
+@Entity
 public class Filter {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
+    @ManyToOne
     private Variable variable;
     private String operator;
 
diff --git a/src/main/java/org/hbp/mip/model/Group.java b/src/main/java/org/hbp/mip/model/Group.java
index 5247fa836..4f9d54b29 100644
--- a/src/main/java/org/hbp/mip/model/Group.java
+++ b/src/main/java/org/hbp/mip/model/Group.java
@@ -4,13 +4,18 @@
 
 package org.hbp.mip.model;
 
+import javax.persistence.*;
 import java.util.LinkedList;
 import java.util.List;
 
+@Entity
 public class Group {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
     private String code;
     private String label;
+    @ManyToMany
     private List<Group> groups;
 
     public Group() {
diff --git a/src/main/java/org/hbp/mip/model/Model.java b/src/main/java/org/hbp/mip/model/Model.java
index 0adf765f7..dbd119ebd 100644
--- a/src/main/java/org/hbp/mip/model/Model.java
+++ b/src/main/java/org/hbp/mip/model/Model.java
@@ -4,20 +4,29 @@
 
 package org.hbp.mip.model;
 
+import javax.persistence.*;
 import java.util.Date;
 
+@Entity
 public class Model {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
     private String title;
     private String slug;
     private String description;
+    @ManyToOne
     private Query query;
+    @ManyToOne
     private Dataset dataset;
     private boolean valid;
+    @ManyToOne
     private Chart chart;
     private Date createdAt;
     private Date updatedAt;
+    @ManyToOne
     private User createdBy;
+    @ManyToOne
     private User updatedBy;
 
     public Model() {
diff --git a/src/main/java/org/hbp/mip/model/Query.java b/src/main/java/org/hbp/mip/model/Query.java
index e93f1416d..6d81619b9 100644
--- a/src/main/java/org/hbp/mip/model/Query.java
+++ b/src/main/java/org/hbp/mip/model/Query.java
@@ -4,14 +4,22 @@
 
 package org.hbp.mip.model;
 
+import javax.persistence.*;
 import java.util.LinkedList;
 import java.util.List;
 
+@Entity
 public class Query {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
+    @ManyToMany
     private List<Variable> variables;
+    @ManyToMany
     private List<Variable> covariables;
+    @ManyToMany
     private List<Variable> grouping;
+    @ManyToMany
     private List<Filter> filters;
     private String request;
 
diff --git a/src/main/java/org/hbp/mip/model/Tag.java b/src/main/java/org/hbp/mip/model/Tag.java
index 249720c8e..48ad3e707 100644
--- a/src/main/java/org/hbp/mip/model/Tag.java
+++ b/src/main/java/org/hbp/mip/model/Tag.java
@@ -4,7 +4,15 @@
 
 package org.hbp.mip.model;
 
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Entity
 public class Tag {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
     private String name;
 
diff --git a/src/main/java/org/hbp/mip/model/User.java b/src/main/java/org/hbp/mip/model/User.java
index b035d24be..67b0d3826 100644
--- a/src/main/java/org/hbp/mip/model/User.java
+++ b/src/main/java/org/hbp/mip/model/User.java
@@ -4,10 +4,14 @@
 
 package org.hbp.mip.model;
 
+import javax.persistence.*;
 import java.util.LinkedList;
 import java.util.List;
 
+@Entity
 public class User {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
     private String fullname;
     private String username;
@@ -18,6 +22,7 @@ public class User {
     private String phone;
     private String birthday;
     private String gender;
+    @ElementCollection
     private List<String> languages;
     private String city;
     private String country;
@@ -26,6 +31,7 @@ public class User {
     private boolean isActive;
     private String apikey;
     private String team;
+    @ElementCollection
     private List<String> roles;
 
     public User() {
diff --git a/src/main/java/org/hbp/mip/model/Value.java b/src/main/java/org/hbp/mip/model/Value.java
index 91d5a0669..f5afddc68 100644
--- a/src/main/java/org/hbp/mip/model/Value.java
+++ b/src/main/java/org/hbp/mip/model/Value.java
@@ -4,7 +4,15 @@
 
 package org.hbp.mip.model;
 
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Entity
 public class Value {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
     private String code;
     private String label;
diff --git a/src/main/java/org/hbp/mip/model/Variable.java b/src/main/java/org/hbp/mip/model/Variable.java
index 684bb0ab4..9439aabee 100644
--- a/src/main/java/org/hbp/mip/model/Variable.java
+++ b/src/main/java/org/hbp/mip/model/Variable.java
@@ -4,11 +4,16 @@
 
 package org.hbp.mip.model;
 
+import javax.persistence.*;
 import java.util.LinkedList;
 import java.util.List;
 
+@Entity
 public class Variable {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
+    @ManyToOne
     private Group group;
     private String code;
     private String label;
@@ -18,6 +23,7 @@ public class Variable {
     private boolean isGrouping;
     private boolean isCovariable;
     private boolean isFilter;
+    @ManyToMany
     private List<Value> values;
 
     public Variable() {
diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml
index 616b46c2f..e2960eb76 100644
--- a/src/main/resources/hibernate.cfg.xml
+++ b/src/main/resources/hibernate.cfg.xml
@@ -18,6 +18,17 @@
         <property name="hibernate.hbm2ddl.auto">update</property>
 
         <mapping class="org.hbp.mip.model.Article"/>
+        <mapping class="org.hbp.mip.model.Chart"/>
+        <mapping class="org.hbp.mip.model.ChartConfigSet"/>
+        <mapping class="org.hbp.mip.model.Dataset"/>
+        <mapping class="org.hbp.mip.model.Model"/>
+        <mapping class="org.hbp.mip.model.Query"/>
+        <mapping class="org.hbp.mip.model.Tag"/>
+        <mapping class="org.hbp.mip.model.User"/>
+        <mapping class="org.hbp.mip.model.Value"/>
+        <mapping class="org.hbp.mip.model.Variable"/>
+        <mapping class="org.hbp.mip.model.Filter"/>
+        <mapping class="org.hbp.mip.model.Group"/>
 
     </session-factory>
 </hibernate-configuration>
\ No newline at end of file
-- 
GitLab