Kotlin: properties ignoradas @ persisten por Sugar ORM

En mi aplicación de Android, estoy usando Kotlin junto con SugarORM y me he encontrado con un problema para evitar que persistan algunas properties. Irónicamente, la anotación @com.orm.dsl.Ignore parece ignorarse cuando se usa en las classs de Kotlin.

Como ejemplo,

1) declaremos dos models aparentemente idénticos:

 // JavaUser.java public class JavaUser extends SugarRecord { public String login = "login"; @Ignore public String password = "password"; } // KotlinUser.kt class KotlinUser : SugarRecord() { var login: String = "login" @Ignore var password: String = "password" } 

2) persistir sus instancias

 JavaUser().save() KotlinUser().save() 

3) y mira lo que realmente persiste:

 sqlite> select * from java_user; ID|LOGIN 1|login sqlite> select * from kotlin_user; ID|LOGIN|PASSWORD 1|login|password 

Me doy count de que puede tener algo que ver con el process de anotación de Kotlin, pero no estoy seguro de cómo puedo hacerlo. Cualquier sugerencia es bienvenida.

    La diferencia principal entre su código Java y Kotlin es que en Java usa campos, pero en Kotlin usa properties. Consulte la sección Propiedades y campos en la documentation.

    Puede probar las siguientes soluciones y ver qué funciona mejor con SugarORM:

    1. Hacer que Kotlin exponga los campos:

     @Ignore @JvmField var password: String = "password" 

    2. Aplique su anotación al campo de respaldo privado:

     @field:Ignore var password: String = "password"