Ахиллес бросает "IllegalStateException: неизвестный текущий тип: java.util.Collection" - PullRequest
0 голосов
/ 05 октября 2018

Я использую Achilles как средство отображения объектов для Cassandra, и в целом он работает довольно хорошо, однако теперь Achilles выдает исключение IllegalStateException при запуске процессора аннотаций.

Error:java: Error while parsing: java.lang.IllegalStateException: Unknown current type : java.util.Collection<org.example.AnInterface>
at info.archinnov.achilles.internals.parser.AnnotationTree.buildTree_Javac(AnnotationTree.java:370)
at info.archinnov.achilles.internals.parser.AnnotationTree.buildFrom(AnnotationTree.java:304)
at info.archinnov.achilles.internals.parser.FieldParser.parse(FieldParser.java:62)
at info.archinnov.achilles.internals.parser.AbstractBeanParser.lambda$parseFields$315(AbstractBeanParser.java:65)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at info.archinnov.achilles.internals.parser.AbstractBeanParser.parseFields(AbstractBeanParser.java:66)
at info.archinnov.achilles.internals.parser.EntityParser.parseEntity(EntityParser.java:45)
at info.archinnov.achilles.internals.apt.processors.meta.AchillesProcessor.lambda$discoverAndValidateTablesAndViews$651(AchillesProcessor.java:259)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)

В трассировке стека AnInterface - это интерфейс, имеющий реализацию с именем AnInterfaceImpl, которая аннотирована @UDT и @Table на уровне класса.Поле, которое, по-видимому, вызывает это, помечено @Column и имеет поле подписи Collection<AnInterface>.

У кого-нибудь есть какая-либо информация о том, как я могу решить эту проблему?

1 Ответ

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

Я не эксперт по Ахиллесу, но я думаю, что Collection - это слишком общее объявление, и могут быть Set, List, ..., которые по-разному отображаются на базовые типы Cassandra.Пожалуйста, используйте определенные типы, такие как List<AnInterface>, которые соответствуют типу таблицы Cassandra.

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