android - 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 中实现这一点?
解决方案
推荐阅读
- sql-server - SSIS 仅提取增量更改
- javascript - 使用条件计算 Vue 属性
- apache-spark - 如何从连接键列表创建连接表达式
- netbeans - Netbeans 将文件夹放在一个位置,但在另一个位置查找它
- angular - 如何通过服务将表单数据传递给另一个组件?
- c++ - 使用 OpenGL ES glDrawElements 绘制正方形不起作用
- scala - 从 Uber Jar 中的资源加载 CSV 文件作为数据框
- generics - 在Java中是否可以调用兄弟类的受保护方法,其中兄弟具有不同的类型参数?
- google-apps-script - 即使脚本被授权,安装的触发器也会导致 Browser.inputBox 的权限错误
- javascript - 如何构建一个点击计数但仅显示带有反应组件的奇数的点击器?