Когда весна исправит абстрактное отображение на couchbase reactive

#spring-data-couchbase

Вопрос:

Есть ли какое-либо решение, как использовать супертип (абстрактный класс) в spring boot starter data couchbase reactive ? Моя идея состоит в том, чтобы иметь супертип, сохранить этот супертип в корзине couchabse и прочитать из него. Написание работает отлично, но при чтении я получил исключение:

орг.каркас.фасоль.Исключение BeanInstantiationException: Не удалось создать экземпляр [com.entities.Отчет]: Класс является абстрактным

Классы реализуются следующим образом: Отчет:

 @JsonTypeInfo(  use = JsonTypeInfo.Id.NAME,  include = JsonTypeInfo.As.PROPERTY,  property = "documentType" ) @JsonSubTypes(  JsonSubTypes.Type(value = TestReport::class, name = TestReport.DOCUMENT_TYPE),  JsonSubTypes.Type(value = Test2Report::class, name = Test2Report.DOCUMENT_TYPE) )  @Document abstract class Report : SyncDocument {   var inspectorId: String = ""  var reportNumber: String = ""  var reportDate: Long = 0   constructor() : super(null) {} }  

Отчет о тестировании:

 @Document @TypeAlias(TestReport.DOCUMENT_TYPE) class TestReport : Report {  companion object {  const val DOCUMENT_TYPE: String = "TestReport"  }   var string3: String = ""   constructor() : super() {} }  

Отчет о тесте2:

 @Document @TypeAlias(Test2Report.DOCUMENT_TYPE) class Test2Report : Report {  companion object {  const val DOCUMENT_TYPE: String = "Test2Report"  }   var string2: String = ""   constructor() : super() {} }  

Я реализовал код таким образом в другом проекте Android, где ReactiveCrudRepository не используется и работает отлично. Теперь я хочу использовать ту же схему в ReactiveCrudRepository.

Спасибо за любые предложения 😀

Ответ №1:

Это может помочь увидеть полную трассировку стека и узнать, какую версию вы используете.

В Java вы можете просто сделать отчет не абстрактным. Разве это не работает в Android?

Спасибо,

  • Майк