đ ️ Converter Class – āϏāĻšāĻ āĻাāώাā§ āĻŦুāĻুāύ
đ ️ Converter Class – āϏāĻšāĻ āĻাāώাā§ āĻŦুāĻুāύ
Room Database āϏাāϧাāϰāĻŖāϤ āĻĒ্āϰিāĻŽিāĻিāĻ āĻাāĻāĻĒেāϰ āĻĄাāĻা (āϝেāĻŽāύ Int, String, Boolean, āĻāϤ্āϝাāĻĻি) āϏংāϰāĻ্āώāĻŖ āĻāϰāϤে āĻĒাāϰে।
āĻিāύ্āϤু āϝāĻĻি āĻāĻŽāϰা āĻাāϏ্āĻāĻŽ āĻ
āĻŦāĻেāĻ্āĻ āĻŦা āĻāĻিāϞ āĻĄাāĻা āĻাāĻāĻĒ (āϝেāĻŽāύ List, Date, Enum, Map) āϏংāϰāĻ্āώāĻŖ āĻāϰāϤে āĻাāĻ āϤাāĻšāϞে āĻী āĻšāĻŦে? đ¤
✅ āϏেāĻাāύেāĻ āĻĻāϰāĻাāϰ āĻšā§ @TypeConverter āĻŦা āĻāύāĻাāϰ্āĻাāϰ āĻ্āϞাāϏ!
đ Converter Class āĻী?
đš Converter Class āĻāĻŽāύ āĻāĻāĻি āĻ্āϞাāϏ, āϝা Room Database-āĻে āĻŦāϞে āĻĻেā§, āĻীāĻাāĻŦে āĻāĻāĻি āĻāĻিāϞ āĻĄাāĻা āĻাāĻāĻĒāĻে SQLite-āĻāϰ āĻāύ্āϝ āϏাāĻĒোāϰ্āĻেāĻĄ āĻĢāϰāĻŽ্āϝাāĻে āϰূāĻĒাāύ্āϤāϰ āĻāϰāϤে āĻšāĻŦে āĻāĻŦং āĻĒāϰে āĻāĻŦাāϰ āĻāĻেāϰ āĻĢāϰāĻŽ্āϝাāĻে āĻĢিāϰিā§ে āĻāύāϤে āĻšāĻŦে।
đĄ āϏāĻšāĻ āĻāϰে āĻŦāϞāϞে – āĻāĻি āĻāĻāĻি āĻĄাāĻা āĻĢāϰāĻŽ্āϝাāĻ āĻĒāϰিāĻŦāϰ্āϤāύ āĻāϰাāϰ āĻŽাāϧ্āϝāĻŽ।
đ¯ Converter Class āĻেāύ āĻĻāϰāĻাāϰ?
đ Room Database āϏāϰাāϏāϰি List, Date, Map, āĻŦা Custom Object āϏ্āĻোāϰ āĻāϰāϤে āĻĒাāϰে āύা।
đ āϤাāĻ āĻāĻুāϞোāĻে String āĻŦা āĻ
āύ্āϝ āϏাāĻĒোāϰ্āĻেāĻĄ āĻĢāϰāĻŽ্āϝাāĻে āĻāύāĻাāϰ্āĻ āĻāϰে āϏ্āĻোāϰ āĻāϰāϤে āĻšā§।
đ āĻĒāϰে āĻāĻŦাāϰ āϏেāĻুāϞোāĻে āĻāĻেāϰ āĻŽāϤো āϰূāĻĒাāύ্āϤāϰ āĻāϰāϤে āĻšā§।
đ āĻāĻাāĻ Converter Class-āĻāϰ āĻাāĻ!
đ āĻāύāĻাāϰ্āĻাāϰ āĻ্āϞাāϏ āϤৈāϰি āĻāϰা āĻļিāĻুāύ!
ā§§️⃣ Date (āϤাāϰিāĻ) āĻāύāĻাāϰ্āĻাāϰ
Room Database āϏāϰাāϏāϰি Date āϏংāϰāĻ্āώāĻŖ āĻāϰāϤে āĻĒাāϰে āύা।
āϤাāĻ Date → Timestamp (Long) āĻāĻŦং Timestamp → Date āĻāύāĻাāϰ্āĻ āĻāϰāϤে āĻšāĻŦে।
import androidx.room.TypeConverter
import java.util.Date
class DateConverter {
@TypeConverter
fun fromTimestamp(value: Long?): Date? {
return value?.let { Date(it) }
}
@TypeConverter
fun dateToTimestamp(date: Date?): Long? {
return date?.time
}
}
✔ fromTimestamp → SQLite āĻĨেāĻে Long āύিā§ে Date āĻŦাāύাā§।
✔ dateToTimestamp → Date āĻĨেāĻে Long āĻŦাāύিā§ে SQLite-āϤে āϏংāϰāĻ্āώāĻŖ āĻāϰে।
⧍️⃣ List (āϤাāϞিāĻা) āĻāύāĻাāϰ্āĻাāϰ
Room āϏāϰাāϏāϰি List<String> āϏংāϰāĻ্āώāĻŖ āĻāϰāϤে āĻĒাāϰে āύা, āϤাāĻ āĻāĻিāĻে String-āĻ āĻāύāĻাāϰ্āĻ āĻāϰāϤে āĻšāĻŦে।
import androidx.room.TypeConverter
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
class ListConverter {
@TypeConverter
fun fromString(value: String): List<String> {
return Gson().fromJson(value, object : TypeToken<List<String>>() {}.type)
}
@TypeConverter
fun listToString(list: List<String>): String {
return Gson().toJson(list)
}
}
✔ fromString → String āĻে List<String> āĻ āĻāύāĻাāϰ্āĻ āĻāϰে।
✔ listToString → List<String> āĻে JSON String-āĻ āĻāύāĻাāϰ্āĻ āĻāϰে āĻĄাāĻাāĻŦেāϏে āϏংāϰāĻ্āώāĻŖ āĻāϰে।
ā§Š️⃣ Enum (āĻāύাāĻŽ) āĻāύāĻাāϰ্āĻাāϰ
āϝāĻĻি āĻāĻĒāύাāϰ āĻ
্āϝাāĻĒে Enum āĻাāĻāĻĒেāϰ āĻĄাāĻা āĻĨাāĻে, āϤাāĻšāϞে āĻāĻিāĻেāĻ String āĻŦা Int-āĻ āĻāύāĻাāϰ্āĻ āĻāϰāϤে āĻšāĻŦে।
import androidx.room.TypeConverter
enum class UserType { ADMIN, MEMBER, GUEST }
class EnumConverter {
@TypeConverter
fun fromUserType(userType: UserType): String {
return userType.name
}
@TypeConverter
fun toUserType(value: String): UserType {
return UserType.valueOf(value)
}
}
✔ fromUserType → UserType āĻে String āĻŦাāύিā§ে SQLite-āϤে āϰাāĻāĻŦে।
✔ toUserType → String āĻে āĻāĻŦাāϰ UserType-āĻ āϰূāĻĒাāύ্āϤāϰ āĻāϰāĻŦে।
đš āĻāύāĻাāϰ্āĻাāϰ āĻ্āϞাāϏ āĻীāĻাāĻŦে Room Database-āĻ āϝুāĻ্āϤ āĻāϰāĻŦেāύ?
đ āĻĒ্āϰāĻĨāĻŽে, āĻāύāĻাāϰ্āĻাāϰ āĻ্āϞাāϏ āϤৈāϰি āĻāϰāϤে āĻšāĻŦে।
đ āϤাāϰāĻĒāϰ, @Database āĻ
্āϝাāύোāĻেāĻļāύ-āĻāϰ āĻŽāϧ্āϝে TypeConverters āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϤে āĻšāĻŦে।
@Database(entities = [User::class], version = 1)
@TypeConverters(DateConverter::class, ListConverter::class, EnumConverter::class)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
✔ āĻāĻি Room āĻে āĻŦāϞে āĻĻেāĻŦে, āĻোāύ āĻোāύ āĻāύāĻাāϰ্āĻাāϰ āĻ্āϞাāϏ āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϤে āĻšāĻŦে।
đ āĻāĻĒāϏংāĻšাāϰ (Final Thoughts)
✅ Room āϏāϰাāϏāϰি Custom Object āĻŦা Complex Data Type āϏংāϰāĻ্āώāĻŖ āĻāϰāϤে āĻĒাāϰে āύা।
✅ Converter Class āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰে āĻāĻুāϞোāĻে āϏাāĻĒোāϰ্āĻেāĻĄ āĻĢāϰāĻŽ্āϝাāĻে āϰূāĻĒাāύ্āϤāϰ āĻāϰা āϝাā§।
✅ Date, List, Enum, Map āĻāϤ্āϝাāĻĻিāϰ āĻāύ্āϝ TypeConverter āĻŦ্āϝāĻŦāĻšাāϰ āĻāϰāϤে āĻšā§।
✅ Room Database-āĻāϰ @TypeConverters āĻĻিā§ে āĻāĻাāϧিāĻ āĻāύāĻাāϰ্āĻাāϰ āĻ্āϞাāϏ āϝুāĻ্āϤ āĻāϰা āϝাā§।
đĨ āĻāĻāύ āĻāĻĒāύি Converter Class-āĻāϰ āĻাāĻ āĻŦুāĻে āĻĢেāϞেāĻেāύ! đđ
Comments
Post a Comment