Делегаты Котлина с постоянством номера lib

В настоящее время я разрабатываю новое приложение для Android с использованием Kotlin. Я попробовал внедрить Room для хранения данных, но я не получил его для работы с делегатами Kotlin.

Я создал делегат Identifier , чтобы гарантировать, что идентификатор не будет изменен после инициализации. Делегат выглядит так:

 class Identifier: ReadWriteProperty<Any?, Long> { private var currentValue = -1L override fun getValue(thisRef: Any?, property: KProperty<*>): Long { if (currentValue == -1L) throw IllegalStateException("${property.name} is not initialized.") return currentValue } override fun setValue(thisRef: Any?, property KProperty<*>, value: Long) { if (currentValue != -1L) throw IllegalStateException("${property.name} can not be changed.") currentValue = value } } 

Мой класс сущности выглядит следующим образом:

 @Entity class Sample { @delegate:PrimaryKey(autoGenerate = true) var id by Identifier() } 

Когда я пытаюсь запустить приложение, kapt дает мне следующее сообщение об ошибке:

 Cannot figure out how to save this field into database. You can consider adding a type converter for it. private final com.myapp.persistence.delegates.Identifier id$delegate = null; 

Могу ли я каким-то образом заставить это работать, не записывая TypeConverter для каждого делегата?