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;
+ }
}