Я пытаюсь использовать Spring для написания документа в MongoDB, и я получаю org.springframework.data.mapping.MappingException: Ambiguous field mapping detected!
Проблема в том, что эта неоднозначность происходит от скомпилированного класса, который наследуется от другого скомпилированного класса, поэтому я не могу использовать аннотацию @Field для изменения имени поля вручную.
Есть ли способ сообщить Spring, как разрешать неоднозначные отображения полей без изменения кода классов?
Класс, который я пытаюсь сохранить, выглядит следующим образом:
data class BehaviouralEvent(
val sources: Set<BehaviouralEvent>,
override val activity: Activity,
override val start: Instant = Instant.now(),
override val end: Instant = Instant.now(),
override val lifecycle: Lifecycle = Lifecycle.UNKNOWN
) : Event(activity, start, end, lifecycle) {
constructor(
sources: Set<BehaviouralEvent>,
activityID: String,
start: Instant = Instant.now(),
end: Instant = Instant.now(),
lifecycle: Lifecycle = Lifecycle.UNKNOWN
) : this(sources, Activity.from(activityID), start, end, lifecycle)
constructor(
sources: Set<BehaviouralEvent>,
event: Event
) : this(sources, event.activity, event.start, event.end, event.lifecycle)
}
Когда я пытаюсь сохранить документ с этой структурой (с MongoRepository<BehaviouralEvent, String>
), я получаю неоднозначное сопоставление полей для всех переопределенных атрибутов (активность, начало, конец и жизненный цикл).
Цените любые идеи или обходные пути.