Improvements for deletion by tenantId
This commit is contained in:
		
							parent
							
								
									6ed6cc298c
								
							
						
					
					
						commit
						1b8e4800d0
					
				@ -36,4 +36,6 @@ public interface DeviceCredentialsService {
 | 
			
		||||
 | 
			
		||||
    void deleteDeviceCredentials(TenantId tenantId, DeviceCredentials deviceCredentials);
 | 
			
		||||
 | 
			
		||||
    void deleteDeviceCredentialsByDeviceId(TenantId tenantId, DeviceId deviceId);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -204,7 +204,6 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional
 | 
			
		||||
    public void deleteAsset(TenantId tenantId, AssetId assetId) {
 | 
			
		||||
        log.trace("Executing deleteAsset [{}]", assetId);
 | 
			
		||||
        validateId(assetId, INCORRECT_ASSET_ID + assetId);
 | 
			
		||||
        if (entityViewService.existsByTenantIdAndEntityId(tenantId, assetId)) {
 | 
			
		||||
            throw new DataValidationException("Can't delete asset that has entity views!");
 | 
			
		||||
@ -216,6 +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());
 | 
			
		||||
 | 
			
		||||
        assetDao.removeById(tenantId, asset.getUuidId());
 | 
			
		||||
@ -276,7 +276,6 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
 | 
			
		||||
        return assetDao.findAssetsByTenantIdAndIdsAsync(tenantId.getId(), toUUIDs(assetIds));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Transactional
 | 
			
		||||
    @Override
 | 
			
		||||
    public void deleteAssetsByTenantId(TenantId tenantId) {
 | 
			
		||||
        log.trace("Executing deleteAssetsByTenantId, tenantId [{}]", tenantId);
 | 
			
		||||
@ -453,7 +452,7 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
 | 
			
		||||
        protected void removeEntity(TenantId tenantId, Asset asset) {
 | 
			
		||||
            deleteAsset(tenantId, asset);
 | 
			
		||||
        }
 | 
			
		||||
            };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    private final PaginatedRemover<CustomerId, Asset> customerAssetsUnasigner = new PaginatedRemover<CustomerId, Asset>() {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -15,6 +15,7 @@
 | 
			
		||||
 */
 | 
			
		||||
package org.thingsboard.server.dao.device;
 | 
			
		||||
 | 
			
		||||
import org.thingsboard.server.common.data.id.DeviceId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
import org.thingsboard.server.common.data.security.DeviceCredentials;
 | 
			
		||||
import org.thingsboard.server.dao.Dao;
 | 
			
		||||
@ -53,4 +54,6 @@ public interface DeviceCredentialsDao extends Dao<DeviceCredentials> {
 | 
			
		||||
     */
 | 
			
		||||
    DeviceCredentials findByCredentialsId(TenantId tenantId, String credentialsId);
 | 
			
		||||
 | 
			
		||||
    DeviceCredentials removeByDeviceId(TenantId tenantId, DeviceId deviceId);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -400,4 +400,13 @@ public class DeviceCredentialsServiceImpl extends AbstractCachedEntityService<St
 | 
			
		||||
        publishEvictEvent(new DeviceCredentialsEvictEvent(deviceCredentials.getCredentialsId(), null));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void deleteDeviceCredentialsByDeviceId(TenantId tenantId, DeviceId deviceId) {
 | 
			
		||||
        log.trace("Executing deleteDeviceCredentialsByDeviceId [{}]", deviceId);
 | 
			
		||||
        DeviceCredentials credentials = deviceCredentialsDao.removeByDeviceId(tenantId, deviceId);
 | 
			
		||||
        if (credentials != null) {
 | 
			
		||||
            publishEvictEvent(new DeviceCredentialsEvictEvent(credentials.getCredentialsId(), null));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -316,7 +316,6 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
 | 
			
		||||
    @Transactional
 | 
			
		||||
    @Override
 | 
			
		||||
    public void deleteDevice(final TenantId tenantId, final DeviceId deviceId) {
 | 
			
		||||
        log.trace("Executing deleteDevice [{}]", deviceId);
 | 
			
		||||
        validateId(deviceId, INCORRECT_DEVICE_ID + deviceId);
 | 
			
		||||
        if (entityViewService.existsByTenantIdAndEntityId(tenantId, deviceId)) {
 | 
			
		||||
            throw new DataValidationException("Can't delete device that has entity views!");
 | 
			
		||||
@ -328,10 +327,8 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void deleteDevice(TenantId tenantId, Device device) {
 | 
			
		||||
        DeviceCredentials deviceCredentials = deviceCredentialsService.findDeviceCredentialsByDeviceId(tenantId, device.getId());
 | 
			
		||||
        if (deviceCredentials != null) {
 | 
			
		||||
            deviceCredentialsService.deleteDeviceCredentials(tenantId, deviceCredentials);
 | 
			
		||||
        }
 | 
			
		||||
        log.trace("Executing deleteDevice [{}]", device.getId());
 | 
			
		||||
        deviceCredentialsService.deleteDeviceCredentialsByDeviceId(tenantId, device.getId());
 | 
			
		||||
        relationService.deleteEntityRelations(tenantId, device.getId());
 | 
			
		||||
 | 
			
		||||
        deviceDao.removeById(tenantId, device.getUuidId());
 | 
			
		||||
@ -422,7 +419,6 @@ public class DeviceServiceImpl extends AbstractCachedEntityService<DeviceCacheKe
 | 
			
		||||
        return deviceDao.findDevicesByIdsAsync(toUUIDs(deviceIds));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Transactional
 | 
			
		||||
    @Override
 | 
			
		||||
    public void deleteDevicesByTenantId(TenantId tenantId) {
 | 
			
		||||
        log.trace("Executing deleteDevicesByTenantId, tenantId [{}]", tenantId);
 | 
			
		||||
 | 
			
		||||
@ -16,6 +16,9 @@
 | 
			
		||||
package org.thingsboard.server.dao.sql.device;
 | 
			
		||||
 | 
			
		||||
import org.springframework.data.jpa.repository.JpaRepository;
 | 
			
		||||
import org.springframework.data.jpa.repository.Query;
 | 
			
		||||
import org.springframework.data.repository.query.Param;
 | 
			
		||||
import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
import org.thingsboard.server.dao.model.sql.DeviceCredentialsEntity;
 | 
			
		||||
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
@ -29,4 +32,8 @@ public interface DeviceCredentialsRepository extends JpaRepository<DeviceCredent
 | 
			
		||||
 | 
			
		||||
    DeviceCredentialsEntity findByCredentialsId(String credentialsId);
 | 
			
		||||
 | 
			
		||||
    @Transactional
 | 
			
		||||
    @Query(value = "DELETE FROM device_credentials WHERE device_id = :deviceId RETURNING *", nativeQuery = true)
 | 
			
		||||
    DeviceCredentialsEntity deleteByDeviceId(@Param("deviceId") UUID deviceId);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.data.jpa.repository.JpaRepository;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
import org.thingsboard.server.common.data.id.DeviceId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
import org.thingsboard.server.common.data.security.DeviceCredentials;
 | 
			
		||||
import org.thingsboard.server.dao.DaoUtil;
 | 
			
		||||
@ -67,4 +68,9 @@ public class JpaDeviceCredentialsDao extends JpaAbstractDao<DeviceCredentialsEnt
 | 
			
		||||
        return DaoUtil.getData(deviceCredentialsRepository.findByCredentialsId(credentialsId));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public DeviceCredentials removeByDeviceId(TenantId tenantId, DeviceId deviceId) {
 | 
			
		||||
        return DaoUtil.getData(deviceCredentialsRepository.deleteByDeviceId(deviceId.getId()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user