ActiveAndroid:
我需要更新特定表格字段的更新内容,而不会在每次没有保存所有字段数据时清除行中的任何现有数据。
例如:
我有一个名为“user”的表格,其中包含以下字段:
extSrc | extId | email | firstName | lastName | role | photo | userId | verified
如果我保存了除“verified”以外的所有字段数据,然后稍后需要仅更新已验证的字段-这是可能的吗?
目前,当我使用下面的代码时,除了userId(我已经将其存储在本地)和verified之外,所有字段都被填充,所有其他字段都被清除。 在我拥有所需更新的验证值时,我没有其他用户数据可以推送/保存(save()),因此当userId与用户表中的userId匹配时,我只需要更新特定的“verified”字段,并保留该用户的所有其他字段。
我的代码:
模型:
// define table name
@Table(name = "User")
public class User extends Model
{
// define table columns
@Column(name = "extSrc")
public String extSrc;
@Column(name = "extId")
public String extId;
@Column(name = "email")
public String email;
@Column(name = "firstName")
public String firstName;
@Column(name = "lastName")
public String lastName;
@Column(name = "role")
public String role;
@Column(name = "photo")
public String photo;
@Column(name = "userId", unique = true, onUniqueConflict = Column.ConflictAction.REPLACE)
public String userId;
@Column(name = "verified")
public String verified;
}
controller:
public class UserAdapter implements JsonDeserializer {
@Override
public User deserialize(JsonElement arg0, Type arg1,
JsonDeserializationContext arg2) throws JsonParseException {
User u = new User();
Log.v("user", u.toString());
JsonObject j = (JsonObject) arg0;
Log.v("j", j.toString());
if(j.has("extSrc"))
{
u.extSrc = j.get("extSrc").getAsString();
Log.v("extSrc", u.extSrc);
}
else
{
Log.v("extSrc", "does not exist");
}
if(j.has("extId"))
{
u.extId = j.get("extId").getAsString();
Log.v("extId", u.extId);
}
else
{
Log.v("extId", "does not exist");
}
if(j.has("email"))
{
u.email = j.get("email").getAsString();
Log.v("email", u.email);
}
else
{
Log.v("email", "does not exist");
}
if(j.has("firstName"))
{
u.firstName = j.get("firstName").getAsString();
Log.v("firstName", u.firstName);
}
else
{
Log.v("firstName", "does not exist");
}
if(j.has("lastName"))
{
u.lastName = j.get("lastName").getAsString();
Log.v("lastName", u.lastName);
}
else
{
Log.v("lastName", "does not exist");
}
if(j.has("role"))
{
u.role = j.get("role").getAsString();
Log.v("role", u.role);
}
else
{
Log.v("role", "does not exist");
}
if(j.has("photo"))
{
u.photo = j.get("photo").getAsString();
Log.v("photo", u.photo);
}
else
{
Log.v("photo", "does not exist");
}
if(j.has("userId"))
{
u.userId = j.get("userId").getAsString();
Log.v("userId", u.userId);
}
else
{
Log.v("userId", "does not exist");
}
if(j.has("verified"))
{
u.userId = SpontlyApplication.PREFS_USER_ID;
u.verified = j.get("verified").getAsString();
Log.v("verified", u.verified);
}
else
{
u.verified = "true";
Log.v("verified", "does not exist");
}
u.save();
}
感谢您。