无法使用带参数的构造函数NO_CONSTRUCTOR实例化java.util.List]

时间:2017-08-03 12:58:50

标签: java spring mongodb

我正在

Failed to instantiate java.util.List using constructor NO_CONSTRUCTOR with arguments ] with root cause
org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface
更新mongodb嵌套文档时出现此异常。

问题与此链接的问题相同

http://forum.spring.io/forum/spring-projects/data/nosql/724397-mapping-exception-with-mongodb-aggregation-framework

但仍然不知道如何解决它。有谁去过这个?

2 个答案:

答案 0 :(得分:6)

我遇到了同样的问题并解决了它,这要归功于: Mongo db java unwind operation in aggregate query throwing exception

当在聚合中发生展开时,结果会变平,所以在我的情况下,我有一个类似的类:

MyClass {
   String _id;
   List<SomeObject> objectList;
}

异常发生是因为扁平化,我的列表对象上的结果而不是数组,现在因为$ unwind而只是一个对象。

我为解决这个问题所做的是创建没有列表的同一个类:

MyClassAggregationResult {
  String _id;
  SomeObject objectList;
}

这样就可以正确映射结果。

希望这也适合你。

答案 1 :(得分:1)

更改为如下所示

String _id;

SomeObject objectList;