Комната @ Игнорировать аннотацию генерирует ошибку времени компиляции - PullRequest
0 голосов
/ 31 октября 2018

Я использую Room и вот мой класс данных

@Entity(tableName = "buy_lead")
class BuyLead(
    @PrimaryKey
    @SerializedName("id")
    val id: String,

    @SerializedName("name")
    val name: String,

    @SerializedName("location")
    val location: String,

    @SerializedName("state")
    val state: String?,

    @SerializedName("message")
    val message: String,

    @SerializedName("product_service")
    val serviceType: String?,

    @SerializedName("posted_on")
    val postedOn: String,

    @SerializedName("formatted_date")
    val formattedDate: String,

    @SerializedName("seconds")
    val seconds: Int,

    @SerializedName("minutes")
    val minutes: Int,

    @SerializedName("hours")
    val hours: Int,

    @SerializedName("days")
    val days: Int,

    var bought: Boolean = false,
    @Ignore var error: String? = null
) {
    val postTime: String
    get() {
        if (seconds < 60) {
            if (seconds == 1)
                return "$seconds second ago"
            return "$seconds seconds ago"
        }

        if (minutes < 60) {
            if (minutes == 1)
                return "$minutes minute ago"
            return "$minutes minutes ago"
        }

        if (hours < 24) {
            if (hours == 1)
                return "$hours hour ago"
            return "$hours hours ago"
        }

        if (days < 5) {
            if (days == 1)
                return "$days day ago"
            return "$days days ago"
        }
        return formattedDate
    }

val address: String
    get() =
        if (state != null) "${location}, ${state}"
        else location
}

и генерирует ошибку времени компиляции

ошибка: сущности и Pojos должны иметь открытый конструктор. Вы можете иметь пустой конструктор или конструктор, параметры которого соответствуют полям (по имени и типу). открытый финальный класс BuyLead { ^

Я пытался переместить поля внутри класса, но ничего не работает. Если я удаляю аннотацию @Ignore из ошибки, она компилируется. Я не хочу хранить поле ошибки в базе данных.

Котлин версия 1.2.71

1 Ответ

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

Попробуйте добавить основной / конструктор по умолчанию в ваш класс.

Вот так

class BuyLead()( . . .
)

Другой пример,

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