How to create a table with a two or more foreign keys using Android Room?

前端 未结 2 1965
孤独总比滥情好
孤独总比滥情好 2020-12-31 09:34

According the entity-relationship model, the relationship between tbl_post and tbl_category could be specified using Room Persistency Libr

相关标签:
2条回答
  • 2020-12-31 09:48

    In Kotlin:

    @Entity(
        tableName = "some_table",
        indices = [Index("id"), Index("brand_id"), Index("model_id")],
        foreignKeys = [
            ForeignKey(entity = BrandEntity::class, parentColumns = ["id"],
                childColumns = ["brand_id"]),
            ForeignKey(entity = ModelEntity::class, parentColumns = ["id"],
                childColumns = ["model_id"]),
            ForeignKey(entity = Table1Entity::class, parentColumns = ["id"],
                childColumns = ["table1_id"]),
            ForeignKey(entity = Table2Entity::class, parentColumns = ["id"],
                childColumns = ["table2_id"])
        ]
    )
    
    0 讨论(0)
  • 2020-12-31 09:52

    TblCategory.java

    @Entity
    class TblCategory {
        @PrimaryKey
        @ColumnInfo(name="cat_id")
        public String id;
    
        @ColumnInfo(name = "cat_name")
        public String name;
    }
    

    TblPost.java (It is missing the foreign key reference but it is not important for the case)

    @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;
    }
    
    0 讨论(0)
提交回复
热议问题