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;
|
||||
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.dao.model.sql.AttributeKvCompositeKey;
|
||||
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,
|
||||
@Param("entityId") String entityId,
|
||||
@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
|
||||
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(() -> {
|
||||
attributeKvRepository.deleteAll(entitiesToDelete);
|
||||
keys.forEach(key ->
|
||||
attributeKvRepository.delete(entityId.getEntityType(), UUIDConverter.fromTimeUUID(entityId.getId()), attributeType, key)
|
||||
);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user