首页 > 解决方案 > Room 中自动递增的复合主键

问题描述

我在 Android 上使用 Room Sqlite 数据库。我有以下数据库实体:

@Entity
public static class TopEntry {
    @Ignore
    public DatabaseDAOs.BaseDAO dao;
}

@Entity
public static class DatabaseEntry extends TopEntry {
    @PrimaryKey(autoGenerate = true)
    public long id;

    @PrimaryKey
    public long sessionID;

    public Long eventNanoTime;
    public Long milliTimestamp;
}

如您所见,我想要一个复合主键。一个主键应该是自动递增的。

这是不可能的,并且会引发错误:

您不能在一个实体中定义多个主键。如果要声明复合主键,则应使用 @Entity#primaryKeys 而不要使用 @PrimaryKey

如何在 Room 中实现这一点?

标签: androidsqliteandroid-roomprimary-key

解决方案


推荐阅读