エンティティ関係モデル によると、tbl_post
およびtbl_category
は Room Persistency Library を使用して次のように指定できます。
@Entity(foreignKeys = @ForeignKey(
entity = TblPost.class,
parentColumns = "id",
childColumns = "tbl_post_id")
)
class TblPostCategory {
@PrimaryKey
public String id;
@ColumnInfo(name = "user_id")
public String postId;
}
ただし、TblPostCategory
は2つの外部キーに依存します:post_id
およびcategory_id
TblPost
およびTbCategory
から。
Roomアノテーションを使用して関係をどのように説明する必要がありますか?
TblCategory.Java
@Entity
class TblCategory {
@PrimaryKey
@ColumnInfo(name="cat_id")
public String id;
@ColumnInfo(name = "cat_name")
public String name;
}
TblPost.Java(外部キー参照がありませんが、ケースにとって重要ではありません)
@Entity
class TblPost {
@PrimaryKey
@ColumnInfo(name="post_id")
public String id;
public String title, content, create_time, author_id;
}
TblPostCategory.Java
@Entity(foreignKeys = {
@ForeignKey(
entity = TblPost.class,
parentColumns = "post_id",
childColumns = "tbl_post_id"
),
@ForeignKey(
entity = TblCategory.class,
parentColumns = "cat_id",
childColumns = "tbl_category_id"
)
})
class TblPostCategory {
@PrimaryKey
@ColumnInfo(name="tbl_post_id")
public String id;
@ColumnInfo(name = "tbl_category_id")
public String categoryId;
}