【发布时间】:2017-07-11 03:17:42
【问题描述】:
您好,我使用领域将数据保存到 relam 数据库,但它没有将数据保存到数据库
在我的应用类中
Realm.init(this);
RealmConfiguration config = new RealmConfiguration.Builder().build();
Realm.deleteRealm(config);
Realm.setDefaultConfiguration(config);
在我的储蓄活动中
public void SaveUserData(final UserData userData, Realm realm)
{
final String userdata = new Gson().toJson(userData);
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
// realm.createObjectFromJson(com.mediquick.databaseModel.UserData.class, userdata);
com.mediquick.databaseModel.UserData user = realm.createObject(com.mediquick.databaseModel.UserData.class);
user.setLname(userData.getLname());
user.setEmail(userData.getEmail());
user.setToken(userData.getToken());
user.setAddress(userData.getAddress());
user.setMobile_no(userData.getMobile_no());
user.setDob(userData.getDob());
user.setName(userData.getName());
user.setProfile_pic(userData.getProfile_pic());
user.setUser_type(userData.getUser_type());
}
});
当我检索一个值时
public String getUserToken(Realm realm)
{
final com.mediquick.databaseModel.UserData user = realm.where(com.mediquick.databaseModel.UserData.class).findFirst();
return (user!=null)?user.getToken():null;
}
当我从数据库中检索令牌时它返回 null
任何想法..
【问题讨论】:
-
我不知道你在什么时候调用
getUserToken()的线程。 -
@EpicPandaForce 主线程
-
在这种情况下,只有当
userData.getToken()为空时才有可能。 -
@EpicPandaForce 保存时我调试的值很好。可能是因为我缺少 realm.insertOrUpdate 它没有保存值,所有领域执行都需要吗?
-
您使用了
realm.createObject(),它会立即创建托管实例,而setToken()将因此保留在数据库中,因此不一定。
标签: android database realm crud realm-mobile-platform