2

ライブラリ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();
    }
}
4

1 に答える 1