Skip to content

Instantly share code, notes, and snippets.

@tinmegali
Last active January 12, 2023 13:44
Show Gist options
  • Save tinmegali/d4a477785f01e57066915a44543db6ed to your computer and use it in GitHub Desktop.
Save tinmegali/d4a477785f01e57066915a44543db6ed to your computer and use it in GitHub Desktop.
Android Room @TypeConverter using Kotlin
@Database(entities = arrayOf(Note::class, User::class), version = 1)
@TypeConverters(Converters::class)
abstract class AppDatabse : RoomDatabase() {
abstract fun userDAO(): UserDAO
abstract fun noteDAO(): NoteDAO
}
package com.tinmegali.daggerwithkotlin.room
import android.arch.persistence.room.TypeConverter
import java.util.Date
class Converters {
@TypeConverter
fun fromTimestamp(value: Long?): Date? {
return if (value == null) null else Date(value)
}
@TypeConverter
fun dateToTimestamp(date: Date?): Long? {
return date?.time
}
}
@noelvillaman
Copy link

How do I create a converter of my own Object. Let us say I have an User object and I want to add this entity to the database

@entity
data class Users(val orderId: UUID, val orderDate: Date, val manager: Manager, val office: Office) {}

I have the Manager class and the Office class that I want to us a converter, how do I go about that?

Thanks

@noelvillaman
Copy link

to use*

@Enough7
Copy link

Enough7 commented May 31, 2022

For some reason converting kotlin.time.Duration does not work but java.time.Duration

@kuza2010
Copy link

Are there a generic Converter for enum? Or do we need write specific converter for each enum that used?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment