From 04f9a9d2dbd2d79bfffea9c5a6b7ba1b32c5f42b Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Mon, 17 Nov 2014 15:29:03 +0000
Subject: [PATCH] #396 fix - Supporting MySQL, changed "persist()" by "merge()"

---
 securis/src/main/java/net/curisit/securis/services/ApplicationResource.java |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java b/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
index c399160..28e3625 100644
--- a/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/ApplicationResource.java
@@ -154,22 +154,27 @@
         }
         currentapp.setName(app.getName());
         currentapp.setDescription(app.getDescription());
-        em.persist(currentapp);
+        em.merge(currentapp);
 
         Set<ApplicationMetadata> newMD = app.getApplicationMetadata();
         for (ApplicationMetadata currentMd : currentapp.getApplicationMetadata()) {
-            if (newMD == null || !newMD.contains(currentMd))
-                ;
-            em.remove(currentMd);
+            if (newMD == null || !newMD.contains(currentMd)) {
+                em.remove(currentMd);
+            }
         }
 
         if (newMD != null) {
+            Set<ApplicationMetadata> oldMD = currentapp.getApplicationMetadata();
             for (ApplicationMetadata md : newMD) {
-                md.setApplication(app);
-                if (md.getCreationTimestamp() == null) {
-                    md.setCreationTimestamp(app.getCreationTimestamp());
+                if (oldMD.contains(md)) {
+                    em.merge(md);
+                } else {
+                    md.setApplication(app);
+                    if (md.getCreationTimestamp() == null) {
+                        md.setCreationTimestamp(app.getCreationTimestamp());
+                    }
+                    em.persist(md);
                 }
-                em.persist(md);
             }
         }
         currentapp.setApplicationMetadata(app.getApplicationMetadata());

--
Gitblit v1.3.2