我是Kotlin的新手,我希望将我的java模型类与数据类进行转换,这有可能吗?我的意思是Ormlite是否支持这个?Kotlin 100%支持Ormlite吗? (Data classes)
2
A
回答
2
我将我的daos正常上课没有问题
import com.j256.ormlite.field.DatabaseField
import com.j256.ormlite.table.DatabaseTable
@DatabaseTable(tableName = HabitDao.TABLE)
class HabitDao() {
companion object {
const val TABLE = "habitdao"
const val ORDER = "order"
const val ID = "id"
}
@DatabaseField(columnName = ID, generatedId = true)
var id: Int = 0
@DatabaseField(index = true)
lateinit var title: String
@DatabaseField
lateinit var intention: String
@DatabaseField(columnName = ORDER)
var order: Int = 0
constructor(title: String, intention: String) : this() {
this.title = title
this.intention = intention
}
override fun toString(): String {
return title
}
}
你只需要提供空构造函数(见一个类定义)。此外,lateinit使属性稍后更易于使用。
编辑:当您需要序列化这些对象时,数据类似乎添加了很有用的功能。 Ormlite能够处理正常的a.k.a. Java类,因此不需要这样做。此外,数据类预计包含构造函数中的所有字段,并且不希望id字段在该处存在。
0
不,ORMLite不能与Kotlin数据类(版本1.1.2以上)一起使用,因为ORMLite要求使用@DatabaseField
注释字段,这对于使用数据类语法声明的字段是不可能的。
1
我用OrmLite和Kotlin的数据类没有问题。关键是要为所有字段指定默认值,然后科特林生成一个空的构造的数据类:
@DatabaseTable(tableName = "sample_table")
data class SampleRecord(
@DatabaseField(id = true)
var id: String? = null,
@DatabaseField(canBeNull = false)
var numField: Int? = null,
@DatabaseField
var strField: String = "",
@DatabaseField
var timestamp: Date = Date()
)
相关问题
- 1. Windows.Foundation.Uri支持Data URI Scheme吗?
- 2. Spring Data支持Calendar吗?
- 3. ORMLite中的Upsert支持
- 4. ORMLite是否支持Android?
- 5. ORMLite不支持GregorianCalendar映射
- 6. ORMlite Android外键支持
- 7. ORMLITE是否支持SQL EXISTS?
- 8. ServiceStack Ormlite和RowVersion支持
- 9. Kotlin支持@ColorInt Java注释
- 10. ServiceStack在英国的OrmLite和DateTimeOffset支持
- 11. ServiceStack和OrmLite中的异步支持
- 12. SQL Server特定类型支持OrmLite
- 13. OrmLite是否支持MetadataType属性?
- 14. ServiceStack对视图的ORMLite支持
- 15. Spring Data MongoDB BigDecimal支持
- 16. Spring Red Data支持Redis BRPOPLPUSH
- 17. Spring Data Elasticsearch支持@Embedded
- 18. Spring Data Jpa不支持Groupby
- 19. ASMX支持multipart/form-data?
- 20. Kotlin是否支持monadic理解?
- 21. Gradle kotlin不支持的方法Dependencies.getAtoms()
- 22. Kotlin是否支持表达式树?
- 23. Spring Data支持同时查询多个模式的数据吗?
- 24. 你支付Subversion支持吗?
- 25. 不支持linux 3.7.1支持ext2吗?
- 26. Spring data select top 100
- 27. ClojureScript中的multipart/form-data支持
- 28. Spring Data Redis - 支持命令PUBSUB CHANNELS
- 29. spring-data-redis是否支持redis集群?
- 30. Spring Data Elasticsearch是否支持Amazon Elasticsearch?
我JPA试了一下,它不与科特林工作得非常好,这里是我的问题:http://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-hell。虽然不知道Ormlite,但如果它确实会很高兴。 – hotkey
你能解释一下Ormlite如何使用类?它构造它们,如果是这样,它需要一个空的默认构造函数?你尝试过一个实验吗? –