ライブラリActiveAndroid with RetroFitを使用します。
単純なモデルであれば、すべてうまく機能します。ただし、モデルに別のモデルが含まれている場合、これらすべてがデータベースにどのように格納されているかわかりません
私のモデル:
@Table(name="User7s")
public class User extends Model {
@Expose
@Column(name="name")
@SerializedName("name")
public String name;
@Expose
@Column(name="sname")
@SerializedName("sname")
public String sname;
@Expose
@Column(name="age")
@SerializedName("age")
public int age;
}
私の2番目のモデル:
@Table(name="Params")
public class Params extends Model {
@Expose
@Column(name="heigth")
@SerializedName("heigth")
public String heigth;
@Expose
@Column(name="weight")
@SerializedName("weight")
public String weight;
}
私のJSON:
{
"name": "Pavel",
"sname": "Petrashov",
"age": 24,
"params": {
"heigth": 188,
"weight": 72
}
}
次に、ユーザーを保存します。しかし、ユーザーにパラメーターを含めてもらいたいです。それらを追加するにはどうすればよいですか?
public void saveUser(View view) {
RestApiStorege.me().getApiUser().getUser(new Callback<User>() {
@Override
public void success(User user, Response response) {
user.save();
}
@Override
public void failure(RetrofitError error) {
Log.d("MyLog",error.getBody().toString());
}
});
}
編集:モデルを次のようにして保存したい
@Table(name="User7s")
public class User extends Model {
@Expose
@Column(name="name")
@SerializedName("name")
public String name;
@Expose
@Column(name="sname")
@SerializedName("sname")
public String sname;
@Expose
@Column(name="age")
@SerializedName("age")
public int age;
@Expose
@Column(name="params")
@SerializedName("params")
public Params params;
public User() {
super();
}
}