thingsboard-memoizeit

removeById fixed

5/14/2017 9:16:01 PM

Details

diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
index 8d0100d..f32c9ce 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/JpaAbstractDao.java
@@ -66,6 +66,7 @@ public abstract class JpaAbstractDao<E extends BaseEntity<D>, D> implements Dao<
     }
 
     @Override
+    @Transactional(propagation = REQUIRES_NEW)
     public D findById(UUID key) {
         log.debug("Get entity by key {}", key);
         E entity = getCrudRepository().findOne(key);
@@ -86,7 +87,7 @@ public abstract class JpaAbstractDao<E extends BaseEntity<D>, D> implements Dao<
     public boolean removeById(UUID key) {
         getCrudRepository().delete(key);
         log.debug("Remove request: {}", key);
-        return getCrudRepository().equals(key);
+        return getCrudRepository().findOne(key) == null;
     }
 
     @Override
diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/rule/JpaBaseRuleDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/rule/JpaBaseRuleDaoTest.java
index 7779652..d613fac 100644
--- a/dao/src/test/java/org/thingsboard/server/dao/sql/rule/JpaBaseRuleDaoTest.java
+++ b/dao/src/test/java/org/thingsboard/server/dao/sql/rule/JpaBaseRuleDaoTest.java
@@ -31,8 +31,7 @@ import java.io.IOException;
 import java.util.List;
 import java.util.UUID;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.*;
 
 /**
  * Created by Valerii Sosliuk on 4/30/2017.
@@ -46,10 +45,7 @@ public class JpaBaseRuleDaoTest extends AbstractJpaDaoTest {
     @DatabaseSetup("classpath:dbunit/empty_dataset.xml")
     public void testSave() throws IOException {
         UUID id = UUIDs.timeBased();
-        RuleMetaData ruleMetaData = new RuleMetaData();
-        ruleMetaData.setId(new RuleId(id));
-        ruleMetaData.setTenantId(new TenantId(UUIDs.timeBased()));
-        ruleMetaData.setName("test");
+        RuleMetaData ruleMetaData = getRuleMetaData(id);
         String filters = "{\"filters\":\"value-1\"}";
         String processor = "{\"processor\":\"value-2\"}";
         String action = "{\"action\":\"value-3\"}";
@@ -69,6 +65,19 @@ public class JpaBaseRuleDaoTest extends AbstractJpaDaoTest {
     }
 
     @Test
+    @DatabaseSetup("classpath:dbunit/empty_dataset.xml")
+    public void testDelete() throws IOException {
+        UUID id = UUIDs.timeBased();
+        RuleMetaData ruleMetaData = getRuleMetaData(id);
+        ruleDao.save(ruleMetaData);
+        RuleMetaData savedRule = ruleDao.findById(id);
+        assertNotNull(savedRule);
+        assertTrue(ruleDao.removeById(id));
+        RuleMetaData afterDelete = ruleDao.findById(id);
+        assertNull(afterDelete);
+    }
+
+    @Test
     @DatabaseSetup("classpath:dbunit/rule.xml")
     public void testFindRulesByPlugin() {
         assertEquals(3, ruleDao.findRulesByPlugin("token_1").size());
@@ -135,4 +144,13 @@ public class JpaBaseRuleDaoTest extends AbstractJpaDaoTest {
         ruleMetaData.setPluginToken(pluginToken);
         ruleDao.save(ruleMetaData);
     }
+
+    private RuleMetaData getRuleMetaData(UUID id) throws IOException {
+        RuleMetaData ruleMetaData = new RuleMetaData();
+        ruleMetaData.setId(new RuleId(id));
+        ruleMetaData.setTenantId(new TenantId(UUIDs.timeBased()));
+        ruleMetaData.setName("test");
+
+        return ruleMetaData;
+    }
 }