From 0ce99115cf32debba93d5445d23f63806413e590 Mon Sep 17 00:00:00 2001 From: volodymyr-babak Date: Thu, 1 Jun 2017 10:05:55 +0300 Subject: [PATCH] Fixed entity save and fixed system widgets retrieve --- .../org/thingsboard/server/dao/sql/JpaAbstractDao.java | 4 ++++ .../server/dao/sql/widget/JpaWidgetsBundleDao.java | 7 +++---- .../server/dao/sql/widget/WidgetsBundleRepository.java | 8 ++++---- 3 files changed, 11 insertions(+), 8 deletions(-) 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 a2b2bc9150..756e096e8c 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 @@ -15,6 +15,7 @@ */ package org.thingsboard.server.dao.sql; +import com.datastax.driver.core.utils.UUIDs; import com.google.common.collect.Lists; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; @@ -61,6 +62,9 @@ public abstract class JpaAbstractDao, D> implements Dao< ((SearchTextEntity) entity).setSearchText(((SearchTextEntity) entity).getSearchTextSource().toLowerCase()); } log.debug("Saving entity {}", entity); + if (entity.getId() == null) { + entity.setId(UUIDs.timeBased()); + } entity = getCrudRepository().save(entity); return DaoUtil.getData(entity); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java index b2f0de6b1f..126fb86f99 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/JpaWidgetsBundleDao.java @@ -23,14 +23,13 @@ import org.thingsboard.server.common.data.page.TextPageLink; import org.thingsboard.server.common.data.widget.WidgetsBundle; import org.thingsboard.server.dao.DaoUtil; import org.thingsboard.server.dao.model.sql.WidgetsBundleEntity; -import org.thingsboard.server.dao.sql.JpaAbstractDao; import org.thingsboard.server.dao.sql.JpaAbstractSearchTextDao; import org.thingsboard.server.dao.widget.WidgetsBundleDao; import java.util.List; import java.util.UUID; -import static org.thingsboard.server.dao.model.ModelConstants.WIDGETS_BUNDLE_COLUMN_FAMILY_NAME; +import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID; /** * Created by Valerii Sosliuk on 4/23/2017. @@ -62,10 +61,10 @@ public class JpaWidgetsBundleDao extends JpaAbstractSearchTextDao findSystemWidgetsBundles(TextPageLink pageLink) { if (pageLink.getIdOffset() == null) { return DaoUtil.convertDataList(widgetsBundleRepository.findSystemWidgetsBundlesFirstPage(pageLink.getLimit(), - pageLink.getTextSearch())); + pageLink.getTextSearch(), NULL_UUID)); } else { return DaoUtil.convertDataList(widgetsBundleRepository.findSystemWidgetsBundlesNextPage(pageLink.getLimit(), - pageLink.getTextSearch(), pageLink.getIdOffset())); + pageLink.getTextSearch(), pageLink.getIdOffset(), NULL_UUID)); } } diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java index d94dd1370d..9341a841ee 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/widget/WidgetsBundleRepository.java @@ -31,15 +31,15 @@ public interface WidgetsBundleRepository extends CrudRepository findSystemWidgetsBundlesFirstPage(Integer limit, String searchText); + List findSystemWidgetsBundlesFirstPage(Integer limit, String searchText, UUID tenantId); - @Query(nativeQuery = true, value = "SELECT * FROM WIDGETS_BUNDLE WHERE TENANT_ID IS NULL " + + @Query(nativeQuery = true, value = "SELECT * FROM WIDGETS_BUNDLE WHERE TENANT_ID = ?4 " + "AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?2, '%')) " + "AND ID > ?3 ORDER BY ID LIMIT ?1") - List findSystemWidgetsBundlesNextPage(Integer limit, String searchText, UUID idOffset); + List findSystemWidgetsBundlesNextPage(Integer limit, String searchText, UUID idOffset, UUID tenantId); @Query(nativeQuery = true, value = "SELECT * FROM WIDGETS_BUNDLE WHERE TENANT_ID = ?2 " + "AND LOWER(SEARCH_TEXT) LIKE LOWER(CONCAT(?3, '%')) " +