android - 如何在@Entity 的 primaryKeys 列表中设置 autoGenerate?
问题描述
我是 Android Room 库的新手。我想创建一个有两个主键的表。我也想将 autoGenerate 设置为这两个主键,但我不知道该怎么做。代码的详细信息如下所示:
@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;
}
非常感谢!
解决方案
欢迎来到 Stackoverflow。
从技术上讲,您不能有 2 个主键。UNIQUE
根据定义,它是一个对其有约束的单一索引。虽然它可以一次应用于 2 列。这意味着这 2 列的组合应该是唯一的,但每一列都可以单独包含重复值。
而对于,只有类型为单列autoGenerate
的主键才能自动生成。integer
您不能自动生成复合主键。
推荐阅读
- c# - 为什么平台游戏碰撞在一个平台上效果很好,但在平台阵列上几乎不起作用?
- html - 如何将 ocicons 添加为类似于 atom 的字体
- python - 如何从本地服务器发送数据
- java - 如何将我在 EditText 中输入的数据插入数据库并出现在 recyclerview 上而不像 ajax 一样刷新它?
- python - 如何让代码从列表中选择一项,打印并一次又一次地重复该过程?
- unity3d - 如何在表面着色器中获取纹理坐标?
- .net-core - 如何在 Visual Studio 2019 中注册自定义签入策略?
- javascript - return 语句是否取代了函数中的另一个 return 语句?
- android - android语法错误数据库帮助类
- python - Flask 模板继承