Вопрос делегата с Пн go и Kotlin - PullRequest
0 голосов
/ 26 января 2020

Я недавно использовал Kmon go library и Kotlin вместе, однако я сделал проблему с Kmon go, но я не уверен, что она связана с библиотекой.

Я пытаюсь сохранить свои данные в моей базе данных mon go (версия 4.2.2)

@Serializable
data class Person(val firstname: String, val lastname: String){

   val fullName
     get() = "$lastname $firstname"
}

Когда я вставляю данные, я отправляю только такой объект: val person = Person("John", "Doe") но когда я проверяю свою базу данных go

db.persons.find()
> { "_id" : ObjectId("5e2da298159243f9894d3834"), "firstname" : "John", "lastname" : "Doe", "fullName" : "Doe John" }

Как я могу предотвратить сохранение fullName в моей базе данных?

РЕДАКТИРОВАТЬ:

Я попытался использовать аннотацию @Transient для моей переменной, но она не сработала, и я получил сообщение проверки: Property does not have backing field which makes it non-serializable and therefore @Transient is redundant

Ответы [ 2 ]

1 голос
/ 27 января 2020

В этот день библиотека Kmon go использует Джексона в фоновом режиме, чтобы избежать анализа свойства, которое мне пришлось использовать: https://www.concretepage.com/jackson-api/jackson-jsonignore-jsonignoreproperties-and-jsonignoretype

, поэтому код для мой класс данных сейчас:

@Serialiable
@JsonIgnoreProperties("fullName")
data class Person(...
0 голосов
/ 26 января 2020

Использование @Transient аннотация:

@Transient
val fullName
  get() = "$lastname $firstname"
...