Fix asset relations deletion

This commit is contained in:
ViacheslavKlimov 2024-01-09 12:00:19 +02:00
parent 320cedd621
commit 55d0d591c6
2 changed files with 10 additions and 5 deletions

View File

@ -215,7 +215,7 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
private void deleteAsset(TenantId tenantId, Asset asset) {
log.trace("Executing deleteAsset [{}]", asset.getId());
relationService.deleteEntityRelations(tenantId, asset.getAssetProfileId());
relationService.deleteEntityRelations(tenantId, asset.getId());
assetDao.removeById(tenantId, asset.getUuidId());

View File

@ -23,8 +23,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionTemplate;
import org.thingsboard.server.common.data.Customer;
import org.thingsboard.server.common.data.EntitySubtype;
import org.thingsboard.server.common.data.StringUtils;
@ -32,21 +30,22 @@ import org.thingsboard.server.common.data.Tenant;
import org.thingsboard.server.common.data.asset.Asset;
import org.thingsboard.server.common.data.asset.AssetInfo;
import org.thingsboard.server.common.data.asset.AssetProfile;
import org.thingsboard.server.common.data.id.AssetProfileId;
import org.thingsboard.server.common.data.id.CustomerId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.relation.EntityRelation;
import org.thingsboard.server.common.data.relation.RelationTypeGroup;
import org.thingsboard.server.dao.asset.AssetDao;
import org.thingsboard.server.dao.asset.AssetProfileService;
import org.thingsboard.server.dao.asset.AssetService;
import org.thingsboard.server.dao.customer.CustomerService;
import org.thingsboard.server.dao.exception.DataValidationException;
import org.thingsboard.server.dao.relation.RelationService;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
@ -60,6 +59,8 @@ public class AssetServiceTest extends AbstractServiceTest {
@Autowired
CustomerService customerService;
@Autowired
RelationService relationService;
@Autowired
private AssetProfileService assetProfileService;
@Autowired
private PlatformTransactionManager platformTransactionManager;
@ -252,11 +253,15 @@ public class AssetServiceTest extends AbstractServiceTest {
asset.setName("My asset");
asset.setType("default");
Asset savedAsset = assetService.saveAsset(asset);
EntityRelation relation = new EntityRelation(tenantId, savedAsset.getId(), EntityRelation.CONTAINS_TYPE);
relationService.saveRelation(tenantId, relation);
Asset foundAsset = assetService.findAssetById(tenantId, savedAsset.getId());
Assert.assertNotNull(foundAsset);
assetService.deleteAsset(tenantId, savedAsset.getId());
foundAsset = assetService.findAssetById(tenantId, savedAsset.getId());
Assert.assertNull(foundAsset);
Assert.assertTrue(relationService.findByTo(tenantId, savedAsset.getId(), RelationTypeGroup.COMMON).isEmpty());
}
@Test