Browse Source

JPA Dao misc fixes due to test failures

pull/152/head
Volodymyr Babak 9 years ago
parent
commit
3c47789a3f
  1. 2
      dao/src/main/java/org/thingsboard/server/dao/model/sql/RelationCompositeKey.java
  2. 14
      dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvLatestEntity.java
  3. 2
      dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java
  4. 18
      dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java
  5. 4
      dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java
  6. 5
      dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/JpaTimeseriesDao.java

2
dao/src/main/java/org/thingsboard/server/dao/model/sql/RelationCompositeKey.java

@ -36,8 +36,8 @@ public class RelationCompositeKey implements Serializable {
private String fromType; private String fromType;
private UUID toId; private UUID toId;
private String toType; private String toType;
private String relationTypeGroup;
private String relationType; private String relationType;
private String relationTypeGroup;
public RelationCompositeKey(EntityRelation relation) { public RelationCompositeKey(EntityRelation relation) {
this.fromId = relation.getFrom().getId(); this.fromId = relation.getFrom().getId();

14
dao/src/main/java/org/thingsboard/server/dao/model/sql/TsKvLatestEntity.java

@ -18,7 +18,7 @@ package org.thingsboard.server.dao.model.sql;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.ToString; import lombok.ToString;
import org.thingsboard.server.common.data.kv.TsKvEntry; import org.thingsboard.server.common.data.kv.*;
import org.thingsboard.server.dao.model.ToData; import org.thingsboard.server.dao.model.ToData;
import javax.persistence.*; import javax.persistence.*;
@ -63,6 +63,16 @@ public final class TsKvLatestEntity implements ToData<TsKvEntry> {
@Override @Override
public TsKvEntry toData() { public TsKvEntry toData() {
return null; KvEntry kvEntry = null;
if (strValue != null) {
kvEntry = new StringDataEntry(key, strValue);
} else if (longValue != null) {
kvEntry = new LongDataEntry(key, longValue);
} else if (doubleValue != null) {
kvEntry = new DoubleDataEntry(key, doubleValue);
} else if (booleanValue != null) {
kvEntry = new BooleanDataEntry(key, booleanValue);
}
return new BasicTsKvEntry(ts, kvEntry);
} }
} }

2
dao/src/main/java/org/thingsboard/server/dao/sql/event/JpaBaseEventDao.java

@ -100,7 +100,7 @@ public class JpaBaseEventDao extends JpaAbstractSearchTimeDao<EventEntity, Event
} }
@Override @Override
public List<Event> findEvents(UUID tenantId, EntityId entityId, String eventType, TimePageLink pageLink) { public List<Event> findEvents(UUID tenantId, EntityId entityId, String eventType, TimePageLink pageLink) {
Specification<EventEntity> timeSearchSpec = JpaAbstractSearchTimeDao.<EventEntity>getTimeSearchPageSpec(pageLink, ID_PROPERTY); Specification<EventEntity> timeSearchSpec = JpaAbstractSearchTimeDao.<EventEntity>getTimeSearchPageSpec(pageLink, "id");
Specification<EventEntity> fieldsSpec = getEntityFieldsSpec(tenantId, entityId, eventType); Specification<EventEntity> fieldsSpec = getEntityFieldsSpec(tenantId, entityId, eventType);
Sort.Direction sortDirection = pageLink.isAscOrder() ? Sort.Direction.ASC : Sort.Direction.DESC; Sort.Direction sortDirection = pageLink.isAscOrder() ? Sort.Direction.ASC : Sort.Direction.DESC;
Pageable pageable = new PageRequest(0, pageLink.getLimit(), sortDirection, ID_PROPERTY); Pageable pageable = new PageRequest(0, pageLink.getLimit(), sortDirection, ID_PROPERTY);

18
dao/src/main/java/org/thingsboard/server/dao/sql/relation/JpaRelationDao.java

@ -144,29 +144,25 @@ public class JpaRelationDao extends JpaAbstractDaoListeningExecutorService imple
@Override @Override
public ListenableFuture<Boolean> deleteOutboundRelations(EntityId entity) { public ListenableFuture<Boolean> deleteOutboundRelations(EntityId entity) {
RelationEntity relationEntity = new RelationEntity();
relationEntity.setFromId(entity.getId());
relationEntity.setFromType(entity.getEntityType().name());
return service.submit( return service.submit(
() -> { () -> {
boolean relationExistsBeforeDelete = relationRepository boolean relationExistsBeforeDelete = relationRepository
.findAllByFromIdAndFromType(relationEntity.getFromId(), relationEntity.getFromType()) .findAllByFromIdAndFromType(entity.getId(), entity.getEntityType().name())
.size() > 0; .size() > 0;
relationRepository.delete(relationEntity); relationRepository.deleteByFromIdAndFromType(entity.getId(), entity.getEntityType().name());
return relationExistsBeforeDelete; return relationExistsBeforeDelete;
}); });
} }
@Override @Override
public ListenableFuture<List<EntityRelation>> findRelations(EntityId from, String relationType, RelationTypeGroup typeGroup, EntityType childType, TimePageLink pageLink) { public ListenableFuture<List<EntityRelation>> findRelations(EntityId from, String relationType, RelationTypeGroup typeGroup, EntityType childType, TimePageLink pageLink) {
Specification<RelationEntity> timeSearchSpec = JpaAbstractSearchTimeDao.<RelationEntity>getTimeSearchPageSpec(pageLink, RELATION_TO_ID_PROPERTY); Specification<RelationEntity> timeSearchSpec = JpaAbstractSearchTimeDao.<RelationEntity>getTimeSearchPageSpec(pageLink, "toId");
Specification<RelationEntity> fieldsSpec = getEntityFieldsSpec(from, relationType, typeGroup, childType); Specification<RelationEntity> fieldsSpec = getEntityFieldsSpec(from, relationType, typeGroup, childType);
Pageable pageable = new PageRequest(0, pageLink.getLimit(), Pageable pageable = new PageRequest(0, pageLink.getLimit(),
new Sort( new Sort(
new Order(ASC, RELATION_TYPE_GROUP_PROPERTY), new Order(ASC, "relationTypeGroup"),
new Order(ASC, RELATION_TYPE_PROPERTY), new Order(ASC, "relationType"),
new Order(ASC, RELATION_TO_TYPE_PROPERTY)) new Order(ASC, "toType"))
); );
return service.submit(() -> return service.submit(() ->
DaoUtil.convertDataList(relationRepository.findAll(where(timeSearchSpec).and(fieldsSpec), pageable).getContent())); DaoUtil.convertDataList(relationRepository.findAll(where(timeSearchSpec).and(fieldsSpec), pageable).getContent()));
@ -188,7 +184,7 @@ public class JpaRelationDao extends JpaAbstractDaoListeningExecutorService imple
predicates.add(relationTypePredicate); predicates.add(relationTypePredicate);
} }
if (typeGroup != null) { if (typeGroup != null) {
Predicate typeGroupPredicate = criteriaBuilder.equal(root.get("relationTypeGroup"), typeGroup); Predicate typeGroupPredicate = criteriaBuilder.equal(root.get("relationTypeGroup"), typeGroup.name());
predicates.add(typeGroupPredicate); predicates.add(typeGroupPredicate);
} }
if (childType != null) { if (childType != null) {

4
dao/src/main/java/org/thingsboard/server/dao/sql/relation/RelationRepository.java

@ -21,6 +21,7 @@ import org.thingsboard.server.dao.annotation.SqlDao;
import org.thingsboard.server.dao.model.sql.RelationCompositeKey; import org.thingsboard.server.dao.model.sql.RelationCompositeKey;
import org.thingsboard.server.dao.model.sql.RelationEntity; import org.thingsboard.server.dao.model.sql.RelationEntity;
import javax.transaction.Transactional;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -48,4 +49,7 @@ public interface RelationRepository
List<RelationEntity> findAllByFromIdAndFromType(UUID fromId, List<RelationEntity> findAllByFromIdAndFromType(UUID fromId,
String fromType); String fromType);
@Transactional
List<RelationEntity> deleteByFromIdAndFromType(UUID fromId, String fromType);
} }

5
dao/src/main/java/org/thingsboard/server/dao/sql/timeseries/JpaTimeseriesDao.java

@ -46,7 +46,8 @@ public class JpaTimeseriesDao extends JpaAbstractDaoListeningExecutorService imp
@Override @Override
public ListenableFuture<List<TsKvEntry>> findAllAsync(EntityId entityId, List<TsKvQuery> queries) { public ListenableFuture<List<TsKvEntry>> findAllAsync(EntityId entityId, List<TsKvQuery> queries) {
return null; // TODO - Add implementation
return service.submit(() -> null);
} }
private ListenableFuture<List<TsKvEntry>> findAllAsync(EntityId entityId, TsKvQuery query) { private ListenableFuture<List<TsKvEntry>> findAllAsync(EntityId entityId, TsKvQuery query) {
@ -92,7 +93,7 @@ public class JpaTimeseriesDao extends JpaAbstractDaoListeningExecutorService imp
@Override @Override
public ListenableFuture<Void> savePartition(EntityId entityId, long tsKvEntryTs, String key, long ttl) { public ListenableFuture<Void> savePartition(EntityId entityId, long tsKvEntryTs, String key, long ttl) {
return null; return service.submit(() -> null);
} }
@Override @Override

Loading…
Cancel
Save