0
すべての繰り返しの平均時間を取得する必要があります。私は、以下の説明エンティティのエンティティがあります。Spring Data MongoDBでコレクションから単純な平均を得る
@Document(collection = IterationEntity.COLLECTION_NAME)
public class IterationEntity {
public final static String COLLECTION_NAME = "iterations";
@Id
private ObjectId id;
@Field("start_date")
private Date startDate;
@Field("finish_date")
private Date finishDate;
@Field("duration")
private Long duration;
@Field("total_tasks")
private Integer totalTasks = 0;
@Field("total_failed_tasks")
private Integer totalFailedTasks = 0;
@Field("total_comments")
private Integer totalComments = 0;
@Field("tasks")
@DBRef
@CascadeSave
private Set<TaskEntity> tasks = new HashSet<>();
}
を、私はこの操作を実行するためのカスタムリポジトリメソッドを実装しているが、私は結果を得るとき、私はエラーを取得します。メソッドが実行されると
@Override
public Long getAvgDuration() {
GroupOperation avgOperation = Aggregation.group()
.sum("duration")
.as("total_duration")
.avg("total_duration")
.as("avg_duration");
Aggregation aggregation = newAggregation(IterationEntity.class, avgOperation);
return mongoTemplate.aggregate(aggregation, IterationEntity.COLLECTION_NAME, Long.class).getUniqueMappedResult();
}
私はこの例外を取得:事前に
org.springframework.data.mapping.model.MappingException: No mapping metadata found for java.lang.Long
感謝。
あなたがmongoTemplate.aggregateを機能させるクラス型としてロング与えられているが、あなたは、合計&平均の両方を戻ってきています。私はそれが問題だと思う – Afridi