Android 基本领域+;Kotlin:RealmObject未设置传递的值
最近我开始在Kotlin中使用Realm,但我无法在DB上进行简单的插入。下面是我正在使用的代码: 模型 刀型Android 基本领域+;Kotlin:RealmObject未设置传递的值,android,realm,kotlin,Android,Realm,Kotlin,最近我开始在Kotlin中使用Realm,但我无法在DB上进行简单的插入。下面是我正在使用的代码: 模型 刀型 objectuserdao{ val TAG=UserDAO::class.simpleName val mRealm=Realm.getDefaultInstance() 乐趣创建(用户:用户){ mRealm.beginTransaction() mapObject(用户) mRealm.commitTransaction() Log.i(标记“领域持久化对象:$user succ
objectuserdao{
val TAG=UserDAO::class.simpleName
val mRealm=Realm.getDefaultInstance()
乐趣创建(用户:用户){
mRealm.beginTransaction()
mapObject(用户)
mRealm.commitTransaction()
Log.i(标记“领域持久化对象:$user successfully}”)
}
趣味阅读(id:Long):用户{
val user=mRealm.where(user::class.java).equalTo(“user_id”,id).findFirst()
Log.i(标记,“领域读取对象:$user”)
返回用户
}
乐趣列表():RealmResults{
val realm=realm.getDefaultInstance()
返回realm.where(User::class.java).findAll()
}
趣味更新(用户:用户){
mRealm.beginTransaction()
mRealm.copyToRealmOrUpdate(用户)
mRealm.commitTransaction()
Log.i(标记,“领域更新对象:$user”)
}
趣味删除(id:Long){
mRealm.beginTransaction()
val user=mRealm.where(user::class.java).equalTo(“user_id”,id).findAll()
user.clear()
Log.i(标记,“领域移除对象:$user”)
mRealm.commitTransaction()
}
全数{
mRealm.beginTransaction()
val results=mRealm.where(User::class.java).findAll()
结果:clear()
mRealm.commitTransaction()
}
private fun mapObject(用户:用户){
val realmUser=mRealm.createObject(User::class.java)
realmUser.name=user.name
realmUser.user\u id=user.user\u id
realmUser.nickname=user.nickname
realmUser.thumboil=user.thumboil
realmUser.password=“示例密码”
realmUser.email=user.email
realmUser.token=user.token
realmUser.country\u代码=user.country\u代码
realmUser.image\u profile\u original=user.image\u profile\u original
realmUser.status=user.status
realmUser.type=user.type
realmUser.birth\u date=user.birth\u date
realmUser.gender=user.gender
realmUser.distance=user.distance
realmUser.game\u对象=user.game\u对象
realmUser.games=user.games
realmUser.friends=user.friends
realmUser.friends\u request=user.friends\u request
}
}
问题出在mapObject函数内部。即使参数user已填充,对象realmUser也不会将传递的值分配给它。有什么想法吗?如何验证realmUser没有正确的值?代码看起来是正确的。我正在通过debbuger进行验证,在尝试分配值之后,值没有显示在var状态上。不管怎样,我又开始了这个过程,它开始工作了。我会在几分钟后公布我所做的事情
open class User : Serializable, RealmObject() {
open var user_id: Long = 0
open var name: String = ""
open var nickname: String = ""
open var thumbnail: String = ""
open var password: String = ""
open var email: String = ""
open var token: String = ""
open var country_code: String = ""
open var image_profile_original: String = ""
open var distance: Double = 0.toDouble()
open var birth_date: Date = Date()
@Ignore
open var status: UserStatus = UserStatus.OFFLINE
@Ignore
open var type: UserType = UserType.OTHER
@Ignore
open var gender: Gender = Gender.male
@Ignore
open var game_objects = mutableListOf<Game>()
@Ignore
open var games = mutableListOf<Long>()
@Ignore
open var friends: RealmList<User>? = null
@Ignore
open var friends_request: RealmList<User>? = null
override fun toString(): String {
return Gson().toString()
}
fun toCanvasUser(): br.com.edsilfer.android.messenger.model.User {
val canvasUser: br.com.edsilfer.android.messenger.model.User = br.com.edsilfer.android.messenger.model.User()
canvasUser.id = user_id.toDouble()
canvasUser.name = name!!
canvasUser.nickname = nickname!!
canvasUser.thumbnail = image_profile_original!!
return canvasUser
}
companion object {
fun fromCanvasUser(canvasUser: br.com.edsilfer.android.messenger.model.User): User {
val user = User()
return user
}
}
}
private fun initRealm() {
Realm.init(this)
val config = RealmConfiguration.Builder()
.deleteRealmIfMigrationNeeded()
.build()
}
object UserDAO {
val TAG = UserDAO::class.simpleName
val mRealm = Realm.getDefaultInstance()
fun create(user: User) {
mRealm.beginTransaction()
mapObject(user)
mRealm.commitTransaction()
Log.i(TAG, "Realm persisted object: $user successfully}")
}
fun read(id: Long): User {
val user = mRealm.where(User::class.java).equalTo("user_id", id).findFirst()
Log.i(TAG, "Realm read object: $user")
return user
}
fun list(): RealmResults<User> {
val realm = Realm.getDefaultInstance()
return realm.where(User::class.java).findAll()
}
fun update(user: User) {
mRealm.beginTransaction()
mRealm.copyToRealmOrUpdate(user)
mRealm.commitTransaction()
Log.i(TAG, "Realm updated object: $user")
}
fun delete(id: Long) {
mRealm.beginTransaction()
val user = mRealm.where(User::class.java).equalTo("user_id", id).findAll()
user.clear()
Log.i(TAG, "Realm removed object: $user")
mRealm.commitTransaction()
}
fun deleteAll() {
mRealm.beginTransaction()
val results = mRealm.where(User::class.java).findAll()
results.clear()
mRealm.commitTransaction()
}
private fun mapObject(user: User) {
val realmUser = mRealm.createObject(User::class.java)
realmUser.name = user.name
realmUser.user_id = user.user_id
realmUser.nickname = user.nickname
realmUser.thumbnail = user.thumbnail
realmUser.password = "sample password"
realmUser.email = user.email
realmUser.token = user.token
realmUser.country_code = user.country_code
realmUser.image_profile_original = user.image_profile_original
realmUser.status = user.status
realmUser.type = user.type
realmUser.birth_date = user.birth_date
realmUser.gender = user.gender
realmUser.distance = user.distance
realmUser.game_objects = user.game_objects
realmUser.games = user.games
realmUser.friends = user.friends
realmUser.friends_request = user.friends_request
}
}