В моей базе данных комнат в моем приложении есть таблица «Сообщения», как показано ниже.
@Entity(tableName = "messages")
data class MessageDto(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "client_message_id")
var clientMessageId: Long,
@ColumnInfo(name = "message_id")
var messageId: Long = 0L,
@TypeConverters(EncryptString.Converter::class)
@ColumnInfo(name = "body", defaultValue = "")
var body: String,
@ColumnInfo(name = "msg_type")
var msgType: Int = 0,
@ColumnInfo(name = "message_date", defaultValue = "")
var messageDate: String,
.........
)
Итак, допустим, я хочу вставить новое сообщение в базу данных. Я создаю объект MessageDto и затем вставляю его.
val messageDto = MessageDto(
newClientMessageId,
item.messageId,
item.body,
item.msgType,
item.msgDate
...)
messageDao.insert(messageDto)
1) Поскольку PK существует только в локальной базе данных, я должен объявить его mySelf. Но с момента его autoIncrement какое значение я должен ввести?
2) Тело столбца, которое я хочу зашифровать с помощью созданной мной функции. Это правильно, как у меня TypeConverters?