使一个字段自动生成,而不是Room Persistence Library中的主键

时间:2018-11-28 09:26:08

标签: android primary-key android-room

首先,这是一个this question的重复问题,我找不到该问题的正确答案,这就是为什么我要问另一个问题。

我的要求是让许多用户使用相同的实体。为此,我创建了一个实体,并为其分配了userId和infoId作为主键(复合键)。在这里,我希望infoId能自动生成。但是我没有做到。

示例:

@Entity(primaryKeys = {"infoId", "userId"})
public class SaveInfo {

private int infoId;
private Info info;
private int userId;

.....
// Constructor setters and getters
.....
}

我尝试将列信息放入infoId,但是这不起作用

 @ColumnInfo(index = true)
 private int infoId;

这就是我的桌子的样子。

info   infoId   userId
-----------------------
ASFAS    1        123
VGVGG    2        236
VHAFD    3        123
ASFAS    4        236

1 个答案:

答案 0 :(得分:0)

您是否尝试通过以下方式设置infoId和userId主键

 @PrimaryKey(autoGenerate = true) var infoId: String = "",
 @PrimaryKey(autoGenerate = true) var userId: String = "",

请注意,我正在使用Kotlin