を使用してオブジェクト間の関係を扱うことに混乱していますAndroidルームを使用している場合、すべてのフィールド値を含めてComment
オブジェクトをデータベースに直接挿入するにはどうすればよいですか?コメントオブジェクトとしての価値?Androidルーム
私が知っているように、フィールドのreplyComment
もComment
オブジェクトであるので、私は、ルームディレクトリにEntity
ようComment
オブジェクトを使用することはできません。そしてComment
オブジェクトに含まれている1対1リレーションと1対多リレーションのために@Relations
注釈を使用してPOJOを定義しても、Comment
オブジェクトを照会することはできません。
Comment
外部キーを使用するなどのモデル定義を変更し、挿入アクションとクエリアクションに影響を与えるなど、他の方法はありますか?
public class Comment {
public String content;
public String id;
public Comment replyComment;
public User user;
public List<ImageMedia> images;
}
public class User{
public String id;
public String name;
}
public class ImageMedia{
public String key;
public String url;
}
への外部キーを持っている**ないアイデアを持っていません私が知っているように、私はオブジェクト間の変換アクションを扱うために抽象レイヤーを作成する必要があります。また、テーブルにすべてのエンティティ値を挿入するserval insertアクションを実行し、servalクエリアクションを実行する必要がありますすべてのエンティティ値を照会して、それらをすべて私が望むコメントモデルで作成します。 –
@LemonYang: "部屋には、データの挿入とクエリの手助けは全く考えられていません" - あなたはそれが何を意味するのか分かりません。あなたの '@Dao'メソッドは、複数の操作を組み合わせる' @ Transaction'メソッドで、エンティティ単位で行われます。ルームはSQLite上に薄いオブジェクトレイヤーを提供します.RetrofitはREST上に薄いオブジェクトレイヤーを提供するのと同じように、Apollo-AndroidはGraphQL上に薄いオブジェクトレイヤーを提供します。 – CommonsWare