added query delete to JavaAttributeDao
This commit is contained in:
parent
f3e8fd4b3c
commit
0e265060f6
@ -15,9 +15,11 @@
|
|||||||
*/
|
*/
|
||||||
package org.thingsboard.server.dao.sql.attributes;
|
package org.thingsboard.server.dao.sql.attributes;
|
||||||
|
|
||||||
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.data.repository.CrudRepository;
|
import org.springframework.data.repository.CrudRepository;
|
||||||
import org.springframework.data.repository.query.Param;
|
import org.springframework.data.repository.query.Param;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
import org.thingsboard.server.dao.model.sql.AttributeKvCompositeKey;
|
import org.thingsboard.server.dao.model.sql.AttributeKvCompositeKey;
|
||||||
import org.thingsboard.server.dao.model.sql.AttributeKvEntity;
|
import org.thingsboard.server.dao.model.sql.AttributeKvEntity;
|
||||||
@ -34,5 +36,16 @@ public interface AttributeKvRepository extends CrudRepository<AttributeKvEntity,
|
|||||||
List<AttributeKvEntity> findAllByEntityTypeAndEntityIdAndAttributeType(@Param("entityType") EntityType entityType,
|
List<AttributeKvEntity> findAllByEntityTypeAndEntityIdAndAttributeType(@Param("entityType") EntityType entityType,
|
||||||
@Param("entityId") String entityId,
|
@Param("entityId") String entityId,
|
||||||
@Param("attributeType") String attributeType);
|
@Param("attributeType") String attributeType);
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
@Modifying
|
||||||
|
@Query("DELETE FROM AttributeKvEntity a WHERE a.id.entityType = :entityType " +
|
||||||
|
"AND a.id.entityId = :entityId " +
|
||||||
|
"AND a.id.attributeType = :attributeType " +
|
||||||
|
"AND a.id.attributeKey = :attributeKey")
|
||||||
|
void delete(@Param("entityType") EntityType entityType,
|
||||||
|
@Param("entityId") String entityId,
|
||||||
|
@Param("attributeType") String attributeType,
|
||||||
|
@Param("attributeKey") String attributeKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -138,16 +138,10 @@ public class JpaAttributeDao extends JpaAbstractDaoListeningExecutorService impl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ListenableFuture<List<Void>> removeAll(TenantId tenantId, EntityId entityId, String attributeType, List<String> keys) {
|
public ListenableFuture<List<Void>> removeAll(TenantId tenantId, EntityId entityId, String attributeType, List<String> keys) {
|
||||||
List<AttributeKvEntity> entitiesToDelete = keys
|
|
||||||
.stream()
|
|
||||||
.map(key -> {
|
|
||||||
AttributeKvEntity entityToDelete = new AttributeKvEntity();
|
|
||||||
entityToDelete.setId(new AttributeKvCompositeKey(entityId.getEntityType(), fromTimeUUID(entityId.getId()), attributeType, key));
|
|
||||||
return entityToDelete;
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
|
|
||||||
return service.submit(() -> {
|
return service.submit(() -> {
|
||||||
attributeKvRepository.deleteAll(entitiesToDelete);
|
keys.forEach(key ->
|
||||||
|
attributeKvRepository.delete(entityId.getEntityType(), UUIDConverter.fromTimeUUID(entityId.getId()), attributeType, key)
|
||||||
|
);
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user