Java 如何将房间自动生成的主键作为外键添加到另一个实体 @实体 数据类产品( @PrimaryKey(自动生成=真) 变量id:Long?=null ) 数据类产品列表( @嵌入式var产品:产品, @关系( parentColumn=“id”, entityColumn=“productId”, 实体=杂货店项目::类 ) 变量课程:列表?=null ) @实体 数据类GroceryItem( @主键 变量id:Int?=null, 变量映像:字符串?=null, 变量价格:字符串?=null )

Java 如何将房间自动生成的主键作为外键添加到另一个实体 @实体 数据类产品( @PrimaryKey(自动生成=真) 变量id:Long?=null ) 数据类产品列表( @嵌入式var产品:产品, @关系( parentColumn=“id”, entityColumn=“productId”, 实体=杂货店项目::类 ) 变量课程:列表?=null ) @实体 数据类GroceryItem( @主键 变量id:Int?=null, 变量映像:字符串?=null, 变量价格:字符串?=null ),java,android,sql,database,android-room,Java,Android,Sql,Database,Android Room,在这里,我没有任何公共字段,因此如何将这两个表关联起来,或者如何将房间自动生成的id添加为外键有帮助?不,在我的情况下,我没有任何公共字段@stachuok,那么如果没有公共字段,外键应该如何工作?在纯SQL中,让我们暂时略过篇幅吧。我不明白在第二个表中添加一个表字段是什么意思。您可以做的是在第二个实体中创建一个productid字段,并将其约束为仅从product[id]中获取值,基本上,您需要在GroceryItem中创建一个名为productid的新属性,dao将只使用实体中定义的对象 @

在这里,我没有任何公共字段,因此如何将这两个表关联起来,或者如何将房间自动生成的id添加为外键有帮助?不,在我的情况下,我没有任何公共字段@stachuok,那么如果没有公共字段,外键应该如何工作?在纯SQL中,让我们暂时略过篇幅吧。我不明白在第二个表中添加一个表字段是什么意思。您可以做的是在第二个实体中创建一个
productid
字段,并将其约束为仅从
product[id]
中获取值,基本上,您需要在
GroceryItem
中创建一个名为
productid
的新属性,dao将只使用实体中定义的对象
@Entity 
data class Product (
@PrimaryKey(autoGenerate = true)
var id: Long? = null
)


data class ProductList (
   @Embedded var products: Product,
   @Relation(
            parentColumn = "id",
            entityColumn = "productId",
            entity = GroceryItem::class
    )
    var courses: List<GroceryItem?>? = null
  )


  @Entity
  data class GroceryItem (
     @PrimaryKey
     var id: Int? = null,
     var image: String? = null,
     var price: String?= null
     )