3

我正在使用 Android 架构组件。因此使用Room“ORM”。我有一个EQPreset有成员的类String presetName。这个类有一个名为的子类UserDefinedEQPreset,它包含一个int[] arr. 我已经EQPreset使用注释声明了子类和实体@Entity,因为我只想将这个子类型存储在 db 中。现在我想使用父类的 ( EQPreset) 成员String presetName作为primary key. 如何在primary key使用时声明父类的成员Room。我知道@Primarykey注释用于声明主键。但是如何将父类的成员用作primary key.

4

2 回答 2

5

@PrimaryKey注释放在父类的字段上。完毕。

例如,在这个示例应用程序中,我有一个abstract class Planwith @PrimaryKey public final String id。所有子类,例如Trip,都继承该@PrimaryKey定义。

并非所有东西都能正确继承(例如,@TypeConverters适用于字段但不适用于类),但@PrimaryKey似乎可以。

于 2017-07-30T13:13:20.117 回答
0
@Entity(primaryKeys = {"presetName"})
class UserDefinedEQPreset extends EQPreset{
    ...
}

我想这就是你要找的。使用注解primaryKeys上的属性Entity来指定主键。您还可以使用它来指定复合主键。

于 2018-10-11T12:28:00.700 回答