Неподдерживаемый интерфейс коллекции - PullRequest
0 голосов
/ 07 октября 2018

Я портирую устаревшее приложение на 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]

Есть ли способ решить эту проблему?

1 Ответ

0 голосов
/ 07 октября 2018

Вам необходимо убедиться, что тип (collectionType) IObservableList удовлетворяет логике, которую реализует код 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://github.com/spring-projects/spring-framework/blob/5.0.x/spring-core/src/main/java/org/springframework/core/CollectionFactory.java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...