diff --git a/src/main/java/eu/hbp/mip/controllers/ModelsApi.java b/src/main/java/eu/hbp/mip/controllers/ModelsApi.java
index 3d32fbce28123c96b14677da2bd427b3e8892c54..ac4d8769d0522b34058584ad42a2ffc9725dc8be 100644
--- a/src/main/java/eu/hbp/mip/controllers/ModelsApi.java
+++ b/src/main/java/eu/hbp/mip/controllers/ModelsApi.java
@@ -10,10 +10,7 @@ import eu.hbp.mip.model.Filter;
 import eu.hbp.mip.model.Model;
 import eu.hbp.mip.model.User;
 import eu.hbp.mip.model.Variable;
-import eu.hbp.mip.repositories.ConfigRepository;
-import eu.hbp.mip.repositories.DatasetRepository;
-import eu.hbp.mip.repositories.ModelRepository;
-import eu.hbp.mip.repositories.QueryRepository;
+import eu.hbp.mip.repositories.*;
 import io.swagger.annotations.*;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -49,6 +46,9 @@ public class ModelsApi {
     @Autowired
     ConfigRepository configRepository;
 
+    @Autowired
+    VariableRepository variableRepository;
+
     @ApiOperation(value = "Get models", response = Model.class, responseContainer = "List")
     @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") })
     @RequestMapping(method = RequestMethod.GET)
@@ -152,6 +152,19 @@ public class ModelsApi {
         map.put("text", model.getTitle());
         model.getConfig().setTitle(map);
 
+        for (Variable var : model.getQuery().getVariables())
+        {
+            variableRepository.save(var);
+        }
+        for (Variable var : model.getQuery().getCovariables())
+        {
+            variableRepository.save(var);
+        }
+        for (Variable var : model.getQuery().getGrouping())
+        {
+            variableRepository.save(var);
+        }
+
         configRepository.save(model.getConfig());
         queryRepository.save(model.getQuery());
         datasetRepository.save(model.getDataset());
diff --git a/src/main/java/eu/hbp/mip/model/Query.java b/src/main/java/eu/hbp/mip/model/Query.java
index 0b7602220d730eacd67c586d5ab134c6935177cc..61b979ff4400e709d8079ff034317dc1d869ce10 100644
--- a/src/main/java/eu/hbp/mip/model/Query.java
+++ b/src/main/java/eu/hbp/mip/model/Query.java
@@ -26,21 +26,21 @@ public class Query {
 
     private String request = null;
 
-    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
+    @ManyToMany(fetch = FetchType.EAGER)
     @JoinTable(name = "query_variable", joinColumns = {
             @JoinColumn(name = "id", nullable = false, updatable = false) },
             inverseJoinColumns = { @JoinColumn(name = "code",
                     nullable = false, updatable = false) })
     private List<Variable> variables = new LinkedList<>();
 
-    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
+    @ManyToMany(fetch = FetchType.EAGER)
     @JoinTable(name = "query_covariable", joinColumns = {
             @JoinColumn(name = "id", nullable = false, updatable = false) },
             inverseJoinColumns = { @JoinColumn(name = "code",
                     nullable = false, updatable = false) })
     private List<Variable> covariables = new LinkedList<>();
 
-    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
+    @ManyToMany(fetch = FetchType.EAGER)
     @JoinTable(name = "query_grouping", joinColumns = {
             @JoinColumn(name = "id", nullable = false, updatable = false) },
             inverseJoinColumns = { @JoinColumn(name = "code",
diff --git a/src/main/java/eu/hbp/mip/repositories/VariableRepository.java b/src/main/java/eu/hbp/mip/repositories/VariableRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ded949436f345143bb9e60a51bc0ee2ab20019b
--- /dev/null
+++ b/src/main/java/eu/hbp/mip/repositories/VariableRepository.java
@@ -0,0 +1,10 @@
+package eu.hbp.mip.repositories;
+
+import eu.hbp.mip.model.Variable;
+import org.springframework.data.repository.CrudRepository;
+
+/**
+ * Created by mirco on 13.09.16.
+ */
+public interface VariableRepository extends CrudRepository<Variable, String> {
+}