如何在@Entity 的primaryKeys 列表中设置autoGenerate?
How can I set autoGenerate in the primaryKeys list of @Entity?
我是 Android 房间图书馆的新人。我想用两个主键创建一个 table。我也想为这两个主键设置自动生成,但我不知道该怎么做。详细代码如下:
@Entity(primaryKeys = {"userId", "planName"},
foreignKeys = @ForeignKey(entity = User.class,
parentColumns = "id",
childColumns = "userId",
onDelete = CASCADE))
public class Plan {
public int userId;
@NonNull
public String planName;
}
非常感谢!
通常,主键应该是唯一标识每一行的单个列。如果您还想保证对 (userId, planName) 的唯一性,您应该只添加一个 UNIQUE 约束。此外,您可能希望为这对列添加索引。
欢迎使用 Whosebug。
从技术上讲,您不能有 2 个主键。根据定义,它是一个具有 UNIQUE
约束的单个索引。虽然它可以一次应用于 2 列。这意味着这两列的组合应该是唯一的,但每一列都可以包含重复值。
而对于autoGenerate
,只有integer
类型和单列的主键才能自动生成。您不能自动生成复合主键。
我是 Android 房间图书馆的新人。我想用两个主键创建一个 table。我也想为这两个主键设置自动生成,但我不知道该怎么做。详细代码如下:
@Entity(primaryKeys = {"userId", "planName"},
foreignKeys = @ForeignKey(entity = User.class,
parentColumns = "id",
childColumns = "userId",
onDelete = CASCADE))
public class Plan {
public int userId;
@NonNull
public String planName;
}
非常感谢!
通常,主键应该是唯一标识每一行的单个列。如果您还想保证对 (userId, planName) 的唯一性,您应该只添加一个 UNIQUE 约束。此外,您可能希望为这对列添加索引。
欢迎使用 Whosebug。
从技术上讲,您不能有 2 个主键。根据定义,它是一个具有 UNIQUE
约束的单个索引。虽然它可以一次应用于 2 列。这意味着这两列的组合应该是唯一的,但每一列都可以包含重复值。
而对于autoGenerate
,只有integer
类型和单列的主键才能自动生成。您不能自动生成复合主键。