我正在将一个遗留应用程序移植到MongoDB,因此我尝试重用现有的POJO。我设法成功地将数据持久化到MongoDB中,但是当我读取文档时,它失败了,出现了以下异常:
Caused by: java.lang.IllegalArgumentException: Unsupported Collection interface: com.company.product.dto.datatypes.IObservableList
at org.springframework.core.CollectionFactory.createCollection(CollectionFactory.java:191) ~[spring-core-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readCollectionOrArray(MappingMongoConverter.java:960) ~[spring-data-mongodb-2.0.9.RELEASE.jar:2.0.9.RELEASE]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readValue(MappingMongoConverter.java:1385) ~[spring-data-mongodb-2.0.9.RELEASE.jar:2.0.9.RELEASE]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$MongoDbPropertyValueProvider.getPropertyValue(MappingMongoConverter.java:1334) ~[spring-data-mongodb-2.0.9.RELEASE.jar:2.0.9.RELEASE]
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readProperties(MappingMongoConverter.java:335) ~[spring-data-mongodb-2.0.9.RELEASE.jar:2.0.9.RELEASE]有没有办法解决这个问题?
发布于 2018-10-07 21:22:38
您需要确保IObservableList的类型(collectionType)满足Spring代码实现的逻辑:
if (collectionType.isInterface()) {
if (Set.class == collectionType || Collection.class == collectionType) {
return new LinkedHashSet<>(capacity);
}
else if (List.class == collectionType) {
return new ArrayList<>(capacity);
}
else if (SortedSet.class == collectionType || NavigableSet.class == collectionType) {
return new TreeSet<>();
}
else {
throw new IllegalArgumentException("Unsupported Collection interface: " + collectionType.getName());
}
}https://stackoverflow.com/questions/52688738
复制相似问题