Commit a58db6b7ecaa36d1d4b86be5e79ec1c736486f91
Committed by
Andrew Shvayka
1 parent
0ed07256
added query delete to JavaAttributeDao
Showing
2 changed files
with
16 additions
and
9 deletions
@@ -15,9 +15,11 @@ | @@ -15,9 +15,11 @@ | ||
15 | */ | 15 | */ |
16 | package org.thingsboard.server.dao.sql.attributes; | 16 | package org.thingsboard.server.dao.sql.attributes; |
17 | 17 | ||
18 | +import org.springframework.data.jpa.repository.Modifying; | ||
18 | import org.springframework.data.jpa.repository.Query; | 19 | import org.springframework.data.jpa.repository.Query; |
19 | import org.springframework.data.repository.CrudRepository; | 20 | import org.springframework.data.repository.CrudRepository; |
20 | import org.springframework.data.repository.query.Param; | 21 | import org.springframework.data.repository.query.Param; |
22 | +import org.springframework.transaction.annotation.Transactional; | ||
21 | import org.thingsboard.server.common.data.EntityType; | 23 | import org.thingsboard.server.common.data.EntityType; |
22 | import org.thingsboard.server.dao.model.sql.AttributeKvCompositeKey; | 24 | import org.thingsboard.server.dao.model.sql.AttributeKvCompositeKey; |
23 | import org.thingsboard.server.dao.model.sql.AttributeKvEntity; | 25 | import org.thingsboard.server.dao.model.sql.AttributeKvEntity; |
@@ -34,5 +36,16 @@ public interface AttributeKvRepository extends CrudRepository<AttributeKvEntity, | @@ -34,5 +36,16 @@ public interface AttributeKvRepository extends CrudRepository<AttributeKvEntity, | ||
34 | List<AttributeKvEntity> findAllByEntityTypeAndEntityIdAndAttributeType(@Param("entityType") EntityType entityType, | 36 | List<AttributeKvEntity> findAllByEntityTypeAndEntityIdAndAttributeType(@Param("entityType") EntityType entityType, |
35 | @Param("entityId") String entityId, | 37 | @Param("entityId") String entityId, |
36 | @Param("attributeType") String attributeType); | 38 | @Param("attributeType") String attributeType); |
39 | + | ||
40 | + @Transactional | ||
41 | + @Modifying | ||
42 | + @Query("DELETE FROM AttributeKvEntity a WHERE a.id.entityType = :entityType " + | ||
43 | + "AND a.id.entityId = :entityId " + | ||
44 | + "AND a.id.attributeType = :attributeType " + | ||
45 | + "AND a.id.attributeKey = :attributeKey") | ||
46 | + void delete(@Param("entityType") EntityType entityType, | ||
47 | + @Param("entityId") String entityId, | ||
48 | + @Param("attributeType") String attributeType, | ||
49 | + @Param("attributeKey") String attributeKey); | ||
37 | } | 50 | } |
38 | 51 |
@@ -138,16 +138,10 @@ public class JpaAttributeDao extends JpaAbstractDaoListeningExecutorService impl | @@ -138,16 +138,10 @@ public class JpaAttributeDao extends JpaAbstractDaoListeningExecutorService impl | ||
138 | 138 | ||
139 | @Override | 139 | @Override |
140 | public ListenableFuture<List<Void>> removeAll(TenantId tenantId, EntityId entityId, String attributeType, List<String> keys) { | 140 | public ListenableFuture<List<Void>> removeAll(TenantId tenantId, EntityId entityId, String attributeType, List<String> keys) { |
141 | - List<AttributeKvEntity> entitiesToDelete = keys | ||
142 | - .stream() | ||
143 | - .map(key -> { | ||
144 | - AttributeKvEntity entityToDelete = new AttributeKvEntity(); | ||
145 | - entityToDelete.setId(new AttributeKvCompositeKey(entityId.getEntityType(), fromTimeUUID(entityId.getId()), attributeType, key)); | ||
146 | - return entityToDelete; | ||
147 | - }).collect(Collectors.toList()); | ||
148 | - | ||
149 | return service.submit(() -> { | 141 | return service.submit(() -> { |
150 | - attributeKvRepository.deleteAll(entitiesToDelete); | 142 | + keys.forEach(key -> |
143 | + attributeKvRepository.delete(entityId.getEntityType(), UUIDConverter.fromTimeUUID(entityId.getId()), attributeType, key) | ||
144 | + ); | ||
151 | return null; | 145 | return null; |
152 | }); | 146 | }); |
153 | } | 147 | } |