如何在@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类型和单列的主键才能自动生成。您不能自动生成复合主键。